#help-archived

1 messages Β· Page 204 of 1

bold anchor
#

Sadly 😭

spring arch
#

yep

silent veldt
#

Yeah, by minecraft

spring arch
#

well if big projects will drop JDK 8 support..

#

then it probably wont

keen compass
#

Minecraft ships JDK 8 with it, however that doesn't mean minecraft can't run on java 11 or higher

bold anchor
#

You can all drop j8 support and start compiling on j11

spring arch
#

minecraft ships jdk 8for only one reason

keen compass
#

Java 14 officially supports Java 8 code and can compile for java 8

bold anchor
#

J11 runs minecraft just fine.

spring arch
#

due to intel driver issues

#

that's all

silent veldt
#

I always compiled to Java 8 for compatibility. Never tried anything higher.

bold anchor
#

Newer versions of java has more interesting developer funsies

spring arch
#

that already was in kotlin like years ago yay

silent veldt
#

Yeah, I would like to use some of the newer features of Optionals

#

J8 is missing a lot

strong lantern
#

buildtools can't build 1.8.8 without java 8

bold anchor
#

Use kotlin or scala πŸ˜‰

spring arch
#

^

keen compass
#

The main reason jdk 8 is shipped with Minecraft is so that users don't need to install Java and second it is also due to licensing as well

strong lantern
#

i wanna cry

rare prairie
#

C#

#

Okn't

frigid ember
#

Do you guys have transform mods where players can turn into another entity?

spring arch
undone narwhal
#

Libsdisguise

spring arch
#

they ship exactly jdk 8u25 due to driver issues

#

because intel's drivers only support windows 8.1

#

after u25 windows 10 support was added and drivers broke

silent veldt
#

OpenGL drivers?

spring arch
#

intel's drivers

#

they are made for win8.1

#

not for win10

keen compass
#

I have already addressed this issue before

#

and I already know the workaround for it

spring arch
#

yes to patch java.exe manifest

keen compass
#

The issue is not LWJGL

#

and no you don't need to patch java, but you can if you want to

inland oxide
#

I think the problem is when I parse the BlockEntityTag and get the items, I'm using Material.matchMaterial, yet the api level is set to 1.13 and the order of the spigot versions in the dependencies starts with the lowest at 1.13-R0.1

keen compass
#

not required to solve the problem

spring arch
#

what is required?

keen compass
#

the problem is due to the low memory being allocated to the GPU

spring arch
#

what

#

lmao

keen compass
#

Those are integrated GPU's

spring arch
#

dude it's literally a bug in drivers

silent veldt
#

If you have api-level set to anything but the newest it will active legacy materials

spring arch
#

what do you mean

keen compass
#

its not

silent veldt
#

It might be messing with your matching

hybrid tinsel
#

what is batter intellj idea or eclipse

keen compass
#

Anyways, with integrated GPU's they don't have their own discrete Ram to use

silent veldt
#

I prefer IntelliJ

keen compass
#

but that doesn't mean iGPU's get to make use of all available ram either

rare prairie
#

what is batter intellj idea or eclipse
None of them

#

Use ms paint

keen compass
#

the OS/BIOS has to set aside a certain limit of ram for the GPU to use. Which can be changed in the BIOS in most cases

spring arch
#

dude are you trolling

bold anchor
keen compass
#

by default the GPU is set to consume not a whole lot of ram

spring arch
#

dude are you trolling

keen compass
#

does the bios not control how much ram the iGPU gets?

#

if you want to prove me wrong on that, go for it

spring arch
#

i'm speaking about the issue i linked above lol

keen compass
#

I personally use an iGPU. If that wasn't the case, then why is it a bios setting?

#

so am I

#

and I am telling you why it is an issue

#

It is a hardware problem, not a software problem

spring arch
#

you are trolling right

#

did you even read the whole thread

rare prairie
#

Who

keen compass
#

Don't need to, because I have already discussed this at length with various other people and this is how I know the work around without patching anything

spring arch
#

wtf

keen compass
#

But hey you are the hardware expert though so don't listen to me πŸ˜‰

inland oxide
#

if you are going to banter on about jdk versions and gpus can you go to general

#

I can't see responses

spring arch
#

i hope that you was trolling lmao

inland oxide
#

or continue your brofest in a pm?

silent veldt
#

@inland oxide If your api-level isn't set to the latest version, it will activate Legacy materials. That might be causing your issue.

spring arch
#

idon't want to continue this lol

keen compass
#

Nothing you have stated contradicts what I have stated

bronze acorn
#

can two different plugins not use commandmap?

spring arch
#

this dude is either trolling or he is stupid

bronze acorn
#

lol

spring arch
#

@bronze acorn yes they can

bronze acorn
#

that's weird then

#

im using the same exact unregister method as my other plugin

spring arch
#

unregister?

bronze acorn
#

and it's not working πŸ‘οΈπŸ‘„πŸ‘οΈ

#

to unregister cmds

#

from the commandmap

spring arch
#

are you sure that the order is correct?

inland oxide
#

so, if I set an api-version: '1.13' to support 1.13+, then any methods that use newer functionality doesn't work?

spring arch
#

maybe the commands are registered after you attempt to unregister them?

#

run your code to unregister commands on next server's tick

#

in onEnable

#

that will solve the problem

silent veldt
#

It seems your code is matching materials based on their name. And spigot has a legacy mode for materials for older, pre-1.13 plugins

#

I'm just saying that legacy mode might have different names than you are expecing

inland oxide
#

well my plugin is just trying to support 1.13+

bronze acorn
#

it's not that they wont unregister onenable, its

#

when the plugin disables

#

the command still stays

spring arch
#

you did not associate it with the plugin then

silent veldt
#

What version are you on though? 1.16?

spring arch
#

see PluginCommand

inland oxide
#

but seems that the Material based api calls might be specific to the api version used.

#

so how to use for a plugin that supports 1.13, 1.14, 1.15, 1.16

#

or are we forced to make new plugin versions every time.

silent veldt
#

You have to make a new plugin version

#

For each version

#

At least, that's what I do

inland oxide
#

no, thats not why there is bukkit.

silent veldt
#

There may be other ways around it, but

#

I find that to be the easiest

inland oxide
#

i mean, it's a conundrum

#

if I use api-version 1.13 for cross compatibility, then new functionality is not available unless I check version and call nms

silent veldt
#

I don't think Spigot ever guaranteed you'd be able to make plugins supporting multiple Spigot versions

inland oxide
#

if I use api-version 1.16, chance that exception occurs or missing method

#

no, but concept of a bukkit api was that it would work on later versions

#

concept of nms doesn't provide portability across versions

silent veldt
#

The biggest issue I'd see is that new methods get added to classes between versions, some get deprecated or even removed. How do you plan to track that?

inland oxide
#

but to use new features in the api, i'm losing portability and only way to solve is with nms

silent veldt
#

You really shouldn't use NMS for detecting different Spigot versions and adapting to them

inland oxide
#

its ironic.

silent veldt
#

You'll have a far simpler time just compiling a working version of your plugin for each version you want to support

inland oxide
#

i'm not making a build for every version because the api changes and doesn't consider that materials change.

silent veldt
#

They don't really change that much between version. Well, except 1.12 - 1.13

inland oxide
#

apparently they changed between 1.15 and 1.16

silent veldt
#

Well, I wish you luck then, because you're in for a difficult road.

spring arch
#

should have used datapacks

inland oxide
#

lol

spring arch
#

πŸ˜‹

inland oxide
#

should have used enums

spring arch
#

Lol

inland oxide
#

still not sure if its the api or if its just changed from 1.15 to 1.16

#

if it changed, i can rewrite the id

#

but if its just missing, well.

peak glade
#

hey

#

can help me

#

18:30:28 [SEVERE] Exception in thread "main"
18:30:28 [SEVERE] java.lang.IllegalArgumentException: Server Spawn (priority 0) is not defined
18:30:28 [SEVERE] at com.google.common.base.Preconditions.checkArgument(Preconditions.java:359)
18:30:28 [SEVERE] at net.md_5.bungee.conf.Configuration.load(Configuration.java:135)
18:30:28 [SEVERE] at net.md_5.bungee.BungeeCord.start(BungeeCord.java:272)
18:30:28 [SEVERE] at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:62)
18:30:28 [SEVERE] at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)

inland oxide
#

so, can't create an itemstack with a material if the material isn't supported in the api-version, right?

opal adder
#

Why do you need to?

inland oxide
#

and if use api-version newer than that version run on, then doesn't load

#

so, only option is to make redundant code??

wraith thicket
#

What is your actual issue?

inland oxide
#

I need to be able to match/create a material based on a key that might be different with the version the plugin is running on

wraith thicket
#

Which material is it that's changed name since 1.13?

inland oxide
#

beehive for example

#

added in 1.15

#

match would fail to find it

wraith thicket
#

Yes, and what's the actual issue?

opal adder
#

Maybe do a Material.valueOf()? Though I'm not sure that would actually make it work

wraith thicket
#

You can simply null-check the results and ignore materials that don't exist

inland oxide
#

There is no enum in material if the api-version is set to 1.13.

wraith thicket
#

And print out a warning in the console

inland oxide
#

I can't

#

The problem is that they don't exist in the api-version but do exist on the spigot version

#

so I'm not sure if its failing or just warning

#

but regardless, probably returning a null for material

#

so itemstack is not created

#

I'll have to retest, but point is that can't have a Material that doesn't existing in the API that does exist in spigot.

#

So how to make plugin support multiple versions

wraith thicket
#

Just because you set the API version to 1.13 doesn't mean the BEEHIVE enum constant won't be there at runtime (in 1.15+)

inland oxide
#

hmm let me test that theory.

wraith thicket
#

It's not a theory, it's fact.

bold anchor
#

Setting it to 1.13 just avoids the bytecode manipulation it does to support "legacy" shit.

#

1.13, 1.14, 1.15, 1.16 is all the same

#

1.13 works on 1.13->1.16, 1.14 works on 1.14 -> 1.16, 1.15 works on 1.15->1.16, 1.16 only works on 1.16.

vernal spruce
#

Try giving api 1.16 and put it in a 1.15

wraith thicket
#

Not entirely "all the same". You should treat it as a minimum requirement. Meaning api-version: 1.15 is not the same as api-version: 1.13 as the former is not designed to work on 1.13

bold anchor
#

All the same mostly, it was added to avoid the bytecode manipulation for legacy shit, and not specifically for you to decide on which version it was suited for, i guess that's just a side effect.

bronze acorn
#

what is the alternative for something like Material.AIR.createBlockdata() on 1.8?

#

is it Material.AIR.getData()

inland oxide
#

so these warnings, I'm guessing are from when the api is trying to match or create an itemstack and the key is for somthing that doesn't exist in the api, but you think it will succeed anyway?

bold anchor
#

Which errors?

wraith thicket
#

I get what you mean. The only meaningful difference is that when you specify a (meaningful, i.e >1.13) API version is that the compatibility layer is not used. However, plugins with API version defined for a newer version of the game will not work on older versions

bold anchor
#

If you specify an api-version it will just try to fetch it from the material enum, if you don't they will get converted to that legacy bullshit kluge.

inland oxide
#

I think it tries and warns

#

because that api-version didn't have that enum.

bold anchor
#

no

#

It doesn't actually check for that lol

bronze acorn
#

what is "Levelled" ?

bold anchor
#

It is there to convert legacy material enums of plugins to modern usage.

#

And it has a side effect of also disabling usage on higher versions 1.13+ if you define a higher version.

inland oxide
#

right, so then what is throwing the warning?

wraith thicket
#

The plugin doesn't kepp track of which materials are available for the api version you define.
As said here within the last few minutes multiple times, all it does is make sure the legacy (pre 1.13) materials are not used

#

What warning are you talking about exactly then?

inland oxide
#
[11:36:16 WARN]: Unable to resolve BlockEntity for ItemStack: minecraft:spawner
[11:36:16 WARN]: Unable to resolve BlockEntity for ItemStack: minecraft:bee_nest```
bold anchor
#

That's not the material enum.

#

That's minecraft being like, this shit no exist wtf.

inland oxide
#

That's from DataConverterSchemaV99

#

I can only guess that it has something to do with my plugin loading the serialized itemstack from the database and creating the itemstack for a container such as a shulker box that contains other itemstacks in the BlockEntityTag for those items.

wheat mirage
#

Can a smelting recipe have more than 1 as the result amount?

inland oxide
#

The data being written in 1.15.x and read in 1.16.x

wraith thicket
#

@wheat mirage Since the result is an ItemStack, I don't see why not

bold anchor
#

It probably won't with the default api tho

wheat mirage
#

@wraith thicket Depends if it will clip though

#

Say if it gives 10 per smelt

bold anchor
#

Try

wheat mirage
#

And the amount is currently 60

#

I think it may clip and give either an unsafe amount

#

or bug in unexpected ways

wraith thicket
dusky sigil
#

this isnt getting called even if at world test - String world = BlockPure.getWorld().toString(); if(world.equals("test")) {

idle ledge
#

i just got the ultrachest plugin and i seriously cant figure out why the items i chose wont go into the chest i choose

spring arch
#

you convert worl to a string

idle ledge
#

ive tried for an hour now

dusky sigil
#

yeah, i just want its name

spring arch
#

u should use getName()

#

read docs first

dusky sigil
#

πŸ€¦β€β™‚οΈ

#

why, me?

#

why u be so dumb?

idle ledge
#

i did all it said was that to do /ultrachest register and it would put it in the chest

#

it didnt work so i did the chests direct name after it and it said it worked but it didnt

wraith thicket
#

It doesn't look like a super popular plugins so I'm afraid you'll probably not have much luck finding someone who has experience with it.
You might want to simply contact the developer

idle ledge
#

okay thanks anyway

wraith thicket
inland oxide
#

OK, so i retested with some code to see what was actually being pulled with the material and its all working fine with the 1.13 version API even for the spawner, beehive and bee_nest. Pretty confident that this is not in the plugin but a vanilla issue. Thanks for all the help!

wraith thicket
#

I already showed you the vanilla bug reports as well...

inland oxide
#

Yes, I saw those, thank you.

#

But still needed to make sure it was working properly for those items.

wraith thicket
#

And I said that it would...

inland oxide
#

but seeing it working just makes it all that much more reinforced in my mind.

#

now if I could only get my 1.8.8, 1.11.2/1.12.2 and 1.13+ plugins consolidated into an all in one

#

theres no way to have a plugin with modules that have different api versions is there?

wraith thicket
#

No. But the API version is not checked at all for MC before 1.13

#

So you can just have it at 1.13 and provide a different implementation for legacy versions

inland oxide
#

so leaving it at 1.13, and then somehow wrapper around the plugin class to load a module that is version dependent?

bold anchor
#

Sure

inland oxide
#

so does that mean it's abstract?

wraith thicket
#

You generally want to use abstraction, yes

bold anchor
#

That’s what i did for my 1.8->1.16 reflectasm treetwerk plugin

inland oxide
#

gosh i need better names

#

or better ideas

#

maybe I should make a plugin that allows stuff to be shot out when you twerk

hollow thorn
#

?paste

worldly heathBOT
inland oxide
#

wow, self-help

hollow thorn
spring arch
#

at com.javaminecraft.Elytra$3.run(Elytra.java:268) ~[?:?]

inland oxide
#

so does the twerk plugin have the plugin class as abstract or some sort of interface, how does that work exactly?

wraith thicket
#

You simply use abstraction.

#

Generally, you have an interface that defines the behaviour.

#

And then multiple implementations for different versions you're planning to support.

#

These implementations may need to be in different sub-modules if you want to depend on a different version of the API

inland oxide
#

right, so if I have a Wrapper interface it can extend JavaPlugin and implement Listener and have the main, onEnable and other methods?

#

or I do I leave the entry point it's own and abstract out everything else

wraith thicket
#

You can only ever point to one class in your plugin.yml

#

So the abstraction needs to be a separate interface

#

But that's generally needed anyway for SRP

inland oxide
#

right, can't point to an interface, so then i have to make PluginName as entry point, then all the methods are stubbed and call the interface method in the wrapper

#

Kind of like what I'm doing now, but I only abstract for the nms methods

#

might be easier than I thought.

#

just need to figure out the gradle sub project stuff

#

ok, well time to sleep.

stoic shell
#

Would anyone know how to disable coordinates of players on the "dynmap" plugin?

graceful vigil
#

I'd assume there would be an option in the config

#

Then again

#

You don't really need the coords if you can see them anyways

stoic shell
#

I've disabled the link and coordinate display features, but I can tell that coordinates are still getting sent, because players have found ways to get coordinates of players easily from devtools. I have searched the config for any option to disable sending coordinates and came up empty. If someone had a solution by modifying one of the web js or server-side web server files, I would settle for that at this point.

graceful vigil
#

I'd assume that it kinds needs coordinates to figure out where to display people

#

How would it know where to display people if it doesn't get their coordinates?

stoic shell
#

maybe they could have an offset as a temporary measure?

graceful vigil
#

You could probably edit the source of the plugin itself to skew the coordinates by a random number or smthn

stoic shell
#

well it seems all the web server-side code is in the dynamp plugin folder under web folder

pastel condor
#

oh please don't tell me you're using the internal webserver

stoic shell
#

I am

#

xD

pastel condor
#

well if a troll spam reloads the page, it can slowdown your server

grim halo
#

Doesnt the server run on a seperate thread? So this is not true.

stoic shell
#

small time server, so I'm not concerned about that right now as my immediate concern is people easily grabbing player coords...

pastel condor
#

I think the cords are attached to the chunk image

#

so players would still be able to find them out

#

or at least the chunk numbering is attached

#

then they could use dinnerbone's tool

#

to find the cords

graceful vigil
#

Best bet is probably to skew the coords before they reach the web server

stoic shell
#

hmm

#

but then I have to edit the plugin every update...?

pastel condor
#

Β―_(ツ)_/Β―

graceful vigil
#

if you're that concerned, don't show players

stoic shell
#

is there any way to change this in the web server files?

grim halo
#

What exactly is the problem here?

pastel condor
#

he wants to hide cords on his map

graceful vigil
#

He doesn't want people to be able to get coords from dynmap

stoic shell
#

yes

graceful vigil
#

Only real way to do that is to display incorrect coords on the map itself

pastel condor
#

you can see the 24 -18

stoic shell
#

yes

#

right...

graceful vigil
#

So either messing with them before they get sent, or finding where they get received server side and adding a random number to it

stoic shell
#

I've looked, but there are a lot of files

pastel condor
#

and they just found some cords

stoic shell
#

yeah, so the chunks could be randomly offset every time a player loads the the map, right?

pastel condor
#

oh okay

#

I'd recommend making a fork of dynmap, so for every update you can just merge from the higher repo

#

if you plan on editing the plugin

graceful vigil
#

They do have a github repo

pastel condor
#

yeah

stoic shell
#

I was planning on just changing something in the web folder, and keeping a backup of that to restore after dynmap updates

abstract shard
#

someone know how to get a different domain for a spigot server?

stoic shell
#

but I can't find where to change to offset them

graceful vigil
abstract shard
#

yes

pastel condor
#

someone know how to get a different domain for a spigot server?
You need to buy a domain

#

do you have one?

vital copper
#

Domains are cheap, usually 12$

graceful vigil
#

Buy a domain then set an A record

#

my .com domains are 8.56

#

4.15 for the first year

stoic shell
#

or

abstract shard
#

you have a website you can recommend for getting domains

graceful vigil
stoic shell
#

I could fork it, but would anyone be able to help with changing the neccesary parts?

pastel condor
#

I use that

abstract shard
#

ok

pastel condor
#

It cost like $10 a year

graceful vigil
#

Porkbun is more affordable

#

But it mostly comes down to opinion once you start getting lower than $10

#

name.com is $13/year whilst porkbun is 8.56/year

pastel condor
#

$13 a year?

#

They increased the price?

graceful vigil
pastel condor
#

Wtf they increased my price

graceful vigil
#

F

pastel condor
#

Without telling me

graceful vigil
#

Switch to porkbun, you won't regret it

pastel condor
#

That’s 4 dollars!!!!!

#

Reeee

graceful vigil
#

Porkbun has amazing support imo

pastel condor
#

But then I have to tell my parents to move my domain over

graceful vigil
#

your parents manage your domains?

pastel condor
#

And they won’t care

graceful vigil
#

my parents don't even know what a domain is

pastel condor
#

My parents have a crap ton of domains

graceful vigil
#

cool af parents

pastel condor
#

My mom bought like 15 domains in 1995

#

She lost a domain worth 10k when she forgot to renew it 😦

graceful vigil
#

big F

quick arch
#

that's not that bad

pastel condor
#

Lol yeah

#

They only paid the guy like 6k

#

I would of expected more of them

frigid ember
#
    @EventHandler
    public void onPlayerMobInteract(PlayerInteractEntityEvent e) {
        if (e.getRightClicked() instanceof Horse) {
            Player pl = e.getPlayer();
            UUID uuid = pl.getUniqueId();
            Entity ent = e.getRightClicked();
            World world = e.getPlayer().getWorld();
            Location entloc = e.getRightClicked().getLocation().add(0,1,0);
            Entity vehicle = world.spawnEntity(entloc, EntityType.BOAT);

            storedNames.add(uuid);
                new BukkitRunnable() {
                    @Override
                    public void run() {
                            if (storedNames.contains(uuid)) {
                                vehicle.teleport(ent);
                        }
                    }
                }.runTaskTimer(this.plugin, 0L, 1L);//20=1s
            vehicle.setPassenger(pl);
        }
    }```
makes me passenger of the horse
not the vehicle :/
graceful vigil
#

i would've held that for millions

pastel condor
#

Lol

graceful vigil
#

then again

#

They probably could've got their lawyers to do something

pastel condor
#

Please don’t put the stack trace here

#

Put it in pastebin

#

They probably could've got their lawyers to do something
And that’s always scary

frigid ember
pastel condor
#

Better πŸ™‚

grim halo
#

That is btw not a stack trace ^^ I think code fragments of this size are fine

pastel condor
#

On a phone it goes crazy

#

My bad I meant to say code

quick arch
#

Isn't it better to use the mount event πŸ€”

grim halo
#

@frigid ember Do you cancel the runnable somehow?

frigid ember
#

the runnable doesnt do what its supposed to be

quick arch
#

It teleports a boat to the horse?

frigid ember
#

yes every tick

#

but it does not

#

it should do that

grim halo
#

because this looks like it will destroy your tps.

frigid ember
#

the boat just has to 'follow' the location of the entity

#

move the same way

#

without the boat being passenger of the entity

quick arch
#

It just stay in one place right?

frigid ember
#

it does now yes

#

the boat

quick arch
#

Yeah... you have to set a variable to the horse's location and then teleport the boat to that new location inside that laggy Runnable

grim halo
#

Also throwing around anon. BukkitRunnables like that is bad practice. You should only need one single Runnable for this task.

quick arch
#

uuid hashmaps, key is the player uuid, value is the horse uuid πŸ€”

crimson sandal
#

Is there a way I can programmatically insert a comment block at the top of a YML using YamlConfiguration?

frigid ember
#

hashset

#

storing uuid

grim halo
#

What do you mean by "insert a comment block at the top of a YML"

#

oh comment block woops i read command block XD

#

Not with the YamlConfiguration api.

crimson sandal
#

I'm creating a lang file like this: ```lang-file:
==: Chests++ Language File
TEST: This is a default message {0}

grim halo
#

You need to write your own file parser for that.

wraith thicket
#

The existing YAML implementation only allows a header - a comment at the top of the file

crimson sandal
#

Oooo it does?

grim halo
#

You can link to your wiki in the header or just write your own yml file manager. Yaml isnt that complex rly.

wraith thicket
frigid ember
#

the runnable works now but

#

i'll still be passenger of the entity first

#

horse in this case won't happen with other entities

quick arch
#

oh, unmount the player from it

frigid ember
#

Using?

quick arch
#

Horse#eject()

bronze acorn
#

anyone here know how to make animated guis?

#

just messing around trying to figure it out lol

#
        new BukkitRunnable() {
            int i = 0;
            @Override
            public void run() {


                getInventory().setItem(i++, new ItemStack(Material.IRON_LEGGINGS));
                Bukkit.getLogger().info(String.valueOf(i));
                if (i == 8)
                {
                    this.cancel();
                }
            }
        }.runTaskTimer(SocksHub.get(), 0, 20);```
#

is what i have currently

grim halo
#

I this a runnable for each inv?

bronze acorn
#

wdym

grim halo
#

Do you start a runnable for each gui

bronze acorn
#

this is my only gui currently

#

what i mean by animated gui

#

like have an item move across the inventory

#

by itself

grim halo
#

Does every player have the same inventory instance?

bronze acorn
grim halo
#

I would highly recommend that all of you stop using anon. BukkitRunnables like this. I see this at least once per day.
In your case you should have a manager singleton that keeps track of every gui and tick them.

#

Also if you only move the item across the screen then the player wont be able to just click it.
There are a lot of approaches and the ones that are modular and scalable use a bit more advanced java.

spring arch
#

@bronze acorn Yiou should try Kotlin plus Skedule

quick arch
#

I use Bukkit Runnables but it's for action bars and combat tag >:)

spring arch
#

Or TaskChain if you want to write in Java

bronze acorn
#

ah

#

aight smile

#

thank you :^)

opal adder
#

What's wrong with that type of bukkit runnable? I've never had an issue with it

spring arch
#

But with kotlin coroutines it's much easier to make stuff like animations

grim halo
#

np ^^ and dont jump into Kotlin just for that.

spring arch
#

@opal adder Code looks ugly.

opal adder
#

Other than that

grim halo
#

@opal adder It is a pain to track them down when you use timings or a profiler.

spring arch
#

uh nothing i guess, but it becomes very spaghetti eventually

opal adder
#

What do you think is better then?

grim halo
#

If you have one that leaks you will have a hard time to track it down

bold anchor
#

skedule is hot

spring arch
#

^

#

it's a sister of TaskChain, she is hot too!

#

wait what.

grim halo
#

Like... actually properly implement Runnable in a class and run it with the BukkitScheduler

bold anchor
#

It's unrelated to taskchain ;/

#

But aikar did link to it tho.

spring arch
#

Skedule is a replacement for TaskChain

#

for Kotlin especially.

opal adder
#

Oh you mean like, create a class object for the runnable, so that the instance of that class is what is running, so I only ever have to call one? Maybe I'm mis-understanding.

grim halo
#

Skedule... is not a replacement for TaskChain

spring arch
#

Why not lol?

opal adder
#

I'm not sure what you mean, I've not ever used TaskChain

#

Is that in spigot, or java?

bold anchor
#

It's a library in java

spring arch
#

^

bold anchor
#

Implemented on bukkit

opal adder
#

Is that better to use for runnables?

#

or cooldowns sorry

#

Timers in general

bold anchor
#

https://github.com/aikar/TaskChain Ehm, it's sortof different.

opal adder
#

Oh it's an API

spring arch
#

yes

grim halo
#

@opal adder You should generally dont throw runnables around. I hardly have a plugin that uses more than one or two instances of a Runnable.
Yust one runnable that keeps track of a data structure of tickables.

#

Skedule can do most of the things that TaskChain does but its not a complete replacement.

opal adder
#

Are you intentionally spelling that wrong?

grim halo
#

You mean Skedule ?

opal adder
#

Yes

grim halo
#

Yes its the name of the library

bold anchor
#

Also what deos it not have 7smile7?

#

It has a wait, it has a context switch and it can repeat.

grim halo
#

shared task chains for example

#

or something like null abortion (null is not rly a kotlin thing anyways)

opal adder
#

So the Skedule is one instance of a runnable?

grim halo
#

Dont worry about Skedule.

#

Its nothing you have to know unless you write your plugins in Kotlin and want to chain sync and async tasks

opal adder
#

Well, I'm trying to think of the best system here, because I have a playtime plugin and I want it to track if an individual users playtime reaches <x> time. I already know how to do this via a runnable, but that would require me making a runnable per player. Which is probably not ideal.

grim halo
#

What i mean is that you should write a manager for tickables.
Today i wrote a small example for projectiles. Because someone started a runnable for every projectile that did load chunks inf in every direction.

#

Its very basic but it shows the idea. One instance of this singleton that manages a collection of tickable objects.

unkempt ridge
#

okay I'm having some trouble with the dragon egg lol. I'm using PlayerInteractEvent to check when they click the egg and everything works, but I'm wondering how I can actually delete that block? I have it set up so it spawns in the players inventory when clicked, however, I want the egg to disappear from the world

opal adder
#

event.getClickedBlock().setType(Material.AIR);

grim halo
#

Yes i would try it like this. Just make sure to cancel the event.

unkempt ridge
#

oops I did that, but I put it in the BlockBreakEvent lol

opal adder
#

When you add it to their inventory, remember to make a check for if it's full. You don't want to just do addInventory

grim halo
#

@opal adder To your task above.
I think you dont need millis precision right?

opal adder
#

No, actually for what I'm doing I only need minutes

unkempt ridge
grim halo
#

Wait ill write you a quick example on how you would do a ultra light tickable that scales way above 200 players.

opal adder
#

You aren't checking the type

#

Oh damn alright xD My original think was just a runnable per player, but if there's a better solution I'm all open to that

unkempt ridge
#

so I would do getBlock().getType().equals()?

opal adder
#

Yes

unkempt ridge
#

I'll try it now thanks!

opal adder
#

You could also shorten that by checking the blockface.down

unkempt ridge
#

how would I do that?

opal adder
#

Just use the player location, no need to create another location reference

#

location.getBlock().getRelative(BlockFace.DOWN).getType().equals(Material.DIAMOND_BLOCK)

potent narwhal
#

Hello, how is the command to let people build ?

unkempt ridge
#

ooohhhh thanks I''ll try that first because it does look better than creating a new location

opal adder
#

./op?

#

Yea, I mean you could a block for it, to shorten the code and make it look prettier, but that's how I do the jumpy sponges in my hub

#

well, emerald blocks actually

potent narwhal
#

yes that works but i dont want everybody to get op xD

opal adder
#

I mean it depends on what you mean, like for creative mode?

potent narwhal
#

yes

opal adder
#

I mean that question is really dependent on the situation

#

but just for creative mode, /gamemode creative <player>

potent narwhal
#

yes but a error message shows up

#

"you are not allowed to place blocks..."

opal adder
#

Lol what

#

Oh

potent narwhal
#

did i need a plugin?

opal adder
#

I'm guessing that player doesn't have permission t place blocks, probably because you're using essentials antibuild?

#

I don't use that plugin

#

I hate that plugin

unkempt ridge
#

everything works thanks guys!

opal adder
#

Np

potent narwhal
#

oh yes

#

i use this pluin

opal adder
#

Don't, the only plugin from Essentials I use, is essentials and essentials chat, I don't use anything else

potent narwhal
#

delete it?

opal adder
#

I mean you only need worldguard for like spawn protection

#

I'm not sure why that plugin even exists, maybe it has a purpose?

potent narwhal
#

ok i try it

floral heart
#

Hello, quick question, if I want to get the actual name of a block and not just the 'material' (for example "LEGACY_REDSTONE_BLOCK"), cuz I want "Redstone block", how would I convert a block type to that?

potent narwhal
#

i have a backup if anything hapen

opal adder
#

You’ll have to do some string manipulation

floral heart
#

Oh no

#

That sounds like a lot of extra work xD

subtle blade
#

Its name is not readily available to the server. Everything is localized on the client

#

The best you can do is get the registry name, Material#getKey(), replace the underscores with spaces and you've got the best you can have on the server

opal adder
#

Make a method that removes all the underscores and removed β€œlegacy” and capitalizes first letter of sentences. At least that’s how u know to do it

floral heart
#

Okay

subtle blade
#

Also, if you're explicitly using legacy names, you're doing it wrong

#

You should never use any legacy constant in your source, period

opal adder
#

Then why does the legacy exist?

subtle blade
#

1.12 constants are mapped to these legacy constants with ASM for forwards compat

potent narwhal
#

Γ€hmmm a lot of informations xD

grim halo
#

?paste

worldly heathBOT
blazing burrow
#

how would you check for a certain item in an entire player inventory

frigid ember
#
            Location entloc = e.getRightClicked().getLocation().add(0,1,0);
            Entity vehicle = world.spawnEntity(entloc, EntityType.BOAT);```
bold anchor
#

@blazing burrow Inventory#contains || Inventory#containsAtLeast

frigid ember
#

the boat has to stay at the location with 1 added to y

blazing burrow
#

and then just insert material.COMPASS?

#

as the parameter?

frigid ember
#

now it'll just fall down

silent prawn
#

Does anyone know of an updated plugin that prevents players from going to the nether roof?

grim halo
#

@opal adder Ill post a manager that ticks a player in an even distributed workload.
It will split the players into multiple collections and only tick some of them every tick.
It kind of looks like this:

inner olive
#

Hello , i found more information about my yesterday's issue, the thing is zombified piglins never aggro players when they hit em. They do move but they dont aggro. Do someone have any idea how to fix it?

#

Btw when i spawn one in the overworld, it works.

#

It doesn't on the nether

sturdy oar
#

Lol @grim halo do you make UML diagrams of code as well?

#

I like u

grim halo
#

Thats not quite a UML diagram but yes ^^

sturdy oar
#

I like doing diagrams of my code so much

grim halo
#

Intellij has a rly nice feature that lets you generate UML diagrams from your code

sturdy oar
#

πŸ™€

frigid ember
#
            Location entloc = e.getRightClicked().getLocation().add(0,1,0);
            Entity vehicle = world.spawnEntity(entloc, EntityType.BOAT);```
So the boat should stay at 1 added to y
but it just falls down now :p
which is logic
but is there a way to keep it 1 above (the mob)
#

πŸ™‚

blazing burrow
#

if(!(joined.getInventory().contains(Material.COMPASS))) is this syntactically correct?

wraith thicket
#

Depends on what you want to accomplish. If you want to check for any stack of Compass, then that should do the trick

opal adder
#

Sorry am back, interesting, that's a bit confusing to me tbh, I'll have to look at it a while

grim halo
sturdy oar
#

Server?

#

How'd you write a server

grim halo
#

@opal adder Dont think about it too hard. You can also just go into the run method and do your
for(Player player : Bukkit.getOnlinePlayers()) stuff and check each one every tick...

#

Just dont start a runnable per player

sturdy oar
#

.forEach(p -> ...) Recommended

grim halo
#

or write a method "check" that only takes a player and then call .forEach(this::check)

sturdy oar
#

But if you don't know lambda and collection for each is fine

opal adder
#

Alrighty, I'll try to figure it out, thank you!

tacit trellis
#

Could this cause trouble if ran async? primary.getWorld().getBlockAt(x, y, z)

bold anchor
#

yes

#

That loads the chunk if its unloaded

bold anchor
#

Make it ride the mob or smth

frigid ember
#

smth?

#

it should not be a passenger of the mob

blazing burrow
#

guys i had a general question about the events

abstract swallow
#

please can someone help me

#

how do i get forge mods onto a spigot server

blazing burrow
#

in public void onEntityPickupItemEvent(EntityPickupItemEvent event) is it the method name or the parameter thats responsible for executing the code inside the method (and is it the same with other events)?

wraith thicket
#

@abstract swallow Forge and Spigot are not compatible (read: you can't)

abstract swallow
#

how do i make a server that can run forge BUT also uses plugins

wraith thicket
#

@blazing burrow The name is irrelevant. All you need is the @EventHandler annotation and the parameter that extends Event

#

@abstract swallow You'd need to ask the people at Forge

frigid ember
#

why'd you wanna call an event in another event

blazing burrow
#

okay thanks @wraith thicket

wraith thicket
#

And you'd obvisously need to register the listener

blazing burrow
#

yes yes

frigid ember
#

and implement Listener

wraith thicket
#

Yes, hence I said "register the listener". Plus, you can't register something that doesn't implment Listener

frigid ember
#

true

blazing burrow
#

yes

#

if i want to check what type of entity a certain entity variable is then what would i use?

frigid ember
#

depends on the event

winged sparrow
#

@blazing burrow to check for entity type, if the event provides you with an entity, you would check if the entity is instanceof EntityType

blazing burrow
#

so would entitytype work on the method i mentioned above

#

ohh ok

frigid ember
#

LivingEntity ent = event.getEntity();

#

will get the picked up entity

bronze acorn
#

there used to be a Material.getMaterial(int id);

#

uh what's the alternative for that

#

to still get it using an int

pastel condor
#

Material.getFromString()

wraith moth
#

anyone know how to get the actual minecraft block class from the bukkit block ?

bronze acorn
#

using an int?

pastel condor
#

why an int?

fading owl
#

Hey, is there an overview of the major changes to the api in 1.16.1? If so, any link is appreciated.

bronze acorn
#

because of ids

blazing burrow
#

@bronze acorn i think ur talking about id

bronze acorn
#

oh

#

yes

#

yes that is

#

are numeric ids completely gone

frigid ember
#

not in 1.8

bronze acorn
#

in 1.15 they are.. crap

frigid ember
#

and 1.9/1.10 I believe

blazing burrow
#

doesnt say deprecated tho

pastel condor
#

Β―_(ツ)_/Β―

bronze acorn
#

material id

#

not entiy xd

blazing burrow
#

oh F

pastel condor
#

lol

#

let me guess, you stored all the materials in their id form

wraith moth
#

how do you get minecraft block from bukkit block?

pastel condor
#

you might be able to cast it, idk

wraith moth
#

I tried that

pastel condor
#

oh okay

wraith moth
#

it gives errors

pastel condor
#

I see

#

idk then

bronze acorn
#

turning a 1.8 spigot plugin to a 1.15

#

its one of our teams and i need it for 1.15

wraith moth
#

bukkit block so stupid an kinda pointless

bronze acorn
#

and well

wraith moth
#

you can't do anything specific in it

bronze acorn
#

they removed Material.getMaterial(int id);

#

nvm

#

they did

#

but nvm

warm stirrup
#

wdym minecraft block from bukkit block?

warm stirrup
#

just do Block.getType();?

blazing burrow
#

how do you use EntityType lol

#

oh NVM

#

figured it out

warm stirrup
#

lazinq isnt there an entity nbt to prevent falling? if i remember correctly there is

frigid ember
#

idk

#

nbt?

warm stirrup
#

Entity.setGravity(false);

#

;)

frigid ember
#

ty

#

πŸ˜„

#

doesn't exist :/

warm stirrup
#

wat

frigid ember
#

maybe later added ;|

#

im on 1.8

warm stirrup
#

uhhhh

#

hold on

#

could you use setVector maybe?

#

setVelocity*?

wraith moth
#

are there event handlers for blocks on net.minecraft.server?

#

@warm stirrup sorry for not replying earlier. The block that you get from event handlers in bukkit is from org.bukkit.Block not net.minecraft.server.Block

#

I wouldn't really mind the bukkit block type but its shit and is missing a lot of functionality that I would get otherwiser

vernal spruce
#

All those events you see are manually called when a action happen internally they arent a source code thing

blazing burrow
#

can you convert from entity to player

warm stirrup
#

cast ^

frigid ember
#

setVelocity*?
@warm stirrup will set the speed right?

torpid root
#

Hello, I do not know if it is an error due to optimization, but in Minecfrat Java they made a change in which to repair an item by having it on hand you did not receive xp until it was completely repaired, with Spigot I receive the experience and it is difficult To repair the article, I would like to know if there is any way to solve this or if it has to do with the configuration of gathering xp orbs?

Sorry for my English It's not my language

Someone?

warm stirrup
#

yeah but you can set it so its not moving

#

minato, you are referring to the Mending enchantment?

#

the item you're trying to repair has Mending right?

torpid root
#

Yes,

blazing burrow
#

@warm stirrup when u said cast ^ were u replying to my question

#

or was that to someone else

warm stirrup
#

yes

#

minato as far as i know mending works on spigot 1.16

#

you can just Player player = (Player) entityObject;

torpid root
#

it works but it doesn't work in the same way, normally if you have an item to repair this take the xp but I get it sometimes and it takes a long time to be able to repair

blazing burrow
#

how would you check for a certain item in an entitys inventory?

#

cause entity.getInventory() doesnt exist i believe

warm stirrup
#

certain entities do

blazing burrow
#

oh wait

#

so if i have Entity pl = event.EntityType() how would i use pl in that way?

warm stirrup
#

what event is this

#

and what are you trying to do

blazing burrow
#

Entity pickup

#

pickup item event*

frigid ember
#
'setPassenger(org.bukkit.entity.Entity)' is deprecated ```
#

why is setPassenger deprecated in 1.16.1

#

and not in 1.8.8 ;|

#

whats a good way of storing custom items

molten mauve
#

alguien q hable espaΓ±ol?

frigid ember
#

hola

molten mauve
#

hola :v

#

alguien sabe usar el worldedit?

frigid ember
#

that was all spanish I can speak :/

warm stirrup
#

Atin, if you're trying to get the inventory of a player from that event then maybe use
if (event.getEntity() instanceof HumanEntity)?

#

Lazinq, you can use Entity.addPassenger()

frigid ember
#

ohh key ty

blazing burrow
#

@warm stirrup but how would i assign it the value of humanentity to then be able to access the actual inventory

#

Cause i need like pl.getInventory thats just a condition

warm stirrup
#

HumanEntity.getInventory() is a thing

#

oh

blazing burrow
#

yeah but i cant do HumanEntity p = event.GetEntity();

warm stirrup
#

HumanEntity p = (HumanEntity) event.getEntity();

molten mauve
#

@frigid ember ahi dice q es para forge pero en mi servidor usa plugins y es de aternos v:

warm stirrup
#

you need to cast HumanEntity to it because it returns a LivingEntity instead

#

HumanEntity is a subinterface of LivingEntity, though, so you need to cast it to use its functions

frigid ember
#

at me.Lazinq.MobsDriver.objects.Driving.onPlayerMobInteract(Driving.java:51) ~[?:?]

#

lo siento no puedo hablar espanol mucho :/

#

@warm stirrup

#
            vehicle.addPassenger(pl);```
blazing burrow
#

ihh ok

warm stirrup
#

whats the error lazinq

frigid ember
#

EventException

blazing burrow
#

wdym by "cast" tho

warm stirrup
#

any more information than that? ._.

frigid ember
#

?paste

worldly heathBOT
warm stirrup
#

what i sent was an example of casting

frigid ember
molten mauve
#

lo siento no puedo hablar espanol mucho :/
@frigid ember ok, no problem, what I was saying was that in the tutorial you sent me the worldedit was for forge and my server has plugins and it is aternos

blazing burrow
#

ohh ok

#

thanks

warm stirrup
#

Caused by: java.lang.NoSuchMethodError: org.bukkit.entity.Entity.addPassenger(Lorg/bukkit/entity/Entity;)Z

molten mauve
#

:v

frigid ember
#

worldedit tiene un version para forge pero es un plugin tambien

warm stirrup
#

if you're trying to support both versions then you should maybe add either an if statement that checks the version or do a try/catch block for that then use the old method if the new one fails for that

molten mauve
#

@frigid ember but does it change with the forge and the plugin or not?

frigid ember
#

if you're trying to support both versions then you should maybe add either an if statement that checks the version or do a try/catch block for that then use the old method if the new one fails for that
@warm stirrup me?

warm stirrup
#

yes

frigid ember
#

que no sΓ©, creo que es casi lo mismo

molten mauve
#

ok

frigid ember
#

ima go back to 1.8

#

xd

#

fuck 1.16

warm stirrup
#

so what i would do is

try {
  entity.addPassenger(player);
} catch (NoSuchMethodError ignored) {
  entity.setPassenger(player);
}```
#

yikes

frigid ember
#

doesnt work

#

same error

warm stirrup
#

it shouldnt be the same error...

frigid ember
#
} catch (NoSuchMethodError ignored) {
  entity.setPassenger(player);```
#

2nd line

#

same error

wheat mirage
#

world#regenerateChunk doesn't work in 1.16, are there any plugins or workarounds?

frigid ember
#

IDK

warm stirrup
#

could you use the paste thing for the error?

frigid ember
#

?paste

worldly heathBOT
frigid ember
wraith moth
#

how do I make my own materials?

#

for bukkit

#

the constructors are private :/

frigid ember
#

could you use the paste thing for the error?
@warm stirrup

karmic sable
warm stirrup
#

why are you trying to use a constructor on a material?

#

Lazinq i dont know what to tell you. showing your code might help a bit

frigid ember
#
            try {
                vehicle.addPassenger(pl);
            } catch (NoSuchMethodError ignored) {
                vehicle.addPassenger(pl);
            }```
#

52-56

warm stirrup
#

omg

#

you're running the same function in the catch block which is why

#

lol

#

so what i would do is

try {
  entity.addPassenger(player);
} catch (NoSuchMethodError ignored) {
  entity.setPassenger(player);
}```
wraith moth
#

@warm stirrup trying to set the blastResistance to a block

frigid ember
#

ohh set

#

is 2nd

wraith moth
#

if you could show me a better way please do

warm stirrup
#

yeah but you might need to make a separate class for running under a specific version because its likely you'll get an error anyway that it doesnt exist

bold anchor
subtle wedge
wraith moth
#

@warm stirrup error for what not existing?

warm stirrup
#

that wasnt to u

wraith moth
#

oh

frigid ember
#
27.07 23:07:38 [Server] INFO at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122) ~[patched_1.15.2.jar:git-Paper-380]```
wraith moth
#

you should tag people so its clear

warm stirrup
#

could u show ur code stoozy so i can see what you're trying to do exactly lol

frigid ember
#

@subtle wedge Preconditions.java line 122

wraith moth
#

I'm not writing code until I know whats possible

#

currently I don't have any clue as to how I would change the durability of a block in bukkit

warm stirrup
#

you mean like a block placed in the world?

wraith moth
#

I tried looking at the javadocs but the block interface doesn't seem to have fields for blasresistance or durability

#

the only method I can find is getBlastResistance

#

there is no setBlastResistance

#

@warm stirrup yea, I'm talking about the block class

warm stirrup
karmic sable
frigid ember
#
            vehicle.setGravity(false);``` doesnt work :/
#

gives an error

warm stirrup
#

once again its because setGravity for Entity doesnt exist in 1.8 spigot

frigid ember
#

nah switched to 1.16

#

for thaat

#

:/

#

ill make it compatible with more versions

wheat mirage
#

world#regenerateChunk doesn't work in 1.16, are there any plugins or workarounds?

warm stirrup
#

it definitely exists in 1.16 πŸ€” are you sure you switched versions?

frigid ember
#
    <dependencies>
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot</artifactId>
            <version>1.16.1-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>```
#

and reloaded maven

#

so yes im sure

wraith moth
#

@warm stirrup that's from 2012 bro

frigid ember
#

it doesnt give errors in the code

wraith moth
#

anyone can search it up, I wouldn't have issues if the code existed lol...

frigid ember
#

but ingame

wraith moth
#

look at the recent javadocs

#

there is no setResistance in 1.16

warm stirrup
#

yeah

#

i see the same thing you see lol

#

gotta look for workarounds then Β―_(ツ)_/Β―

wraith moth
#

yeah that's what I am trying to do now

#

but bukkit is mad annoying

#

so much redundant code and hard coded fields, it hurts me

willow juniper
#

Can I make a ticket?

wraith moth
#

there is a long ass switch statement which returns durability field for a block for EVERY SINGLE BLOCK IN THE GAME

willow juniper
#

I would like to report somthing

wraith moth
#

like just imagine writing that switch statement

wraith thicket
#

You're bound to have hard coded fields. You can't really get around it if you want the client and server to understand each other.

willow juniper
#

-new

#

!help

warm stirrup
#

? report something like a bug report?

willow juniper
#

Can I make a ticket?

#

No a player report

#

Somthing happened that I believe spigot may want to know about

wraith thicket
#

Do you mean a user on the forums?

willow juniper
#

Spigot user

wraith thicket
#

Then report their profile

willow juniper
#

Ok

wraith thicket
#

Press the report button

willow juniper
#

Ok

ivory pewter
#

is PlayerInventory#remove async safe?

wraith thicket
#

No

#

Anything that isn't explicitly states as being thread safe is not thread safe

#

The only things that should be thread safe would be messaging and particles (since they're just sending packets)

velvet hinge
#

generally speaking, is it safe to add vanilla resource packs along side plugins?

warm stirrup
#

yes

velvet hinge
#

ty πŸ™‚

blazing burrow
#

if im using events

#

do i have to use @eventhandler again and again for every event or just once

warm stirrup
#

yes

wraith thicket
#

For every method

blazing burrow
#

so every event i do @eventhandler ok thanks

warm stirrup
#

if you're using a separate method for each yes

frigid ember
#
            vehicle.setGravity(false);```
#

im on 1.16.1

#

docs

wraith thicket
#

if you're using a separate method for each yes
@warm stirrup You can't not use a separate method for each event

blazing burrow
#

yeah thanks

frigid ember
#

vehicle -> Entity vehicle = world.spawnEntity(entloc, EntityType.BOAT);

#

So are paper and spigot are for hosting not mods?

wraith thicket
wraith thicket
#

Have you tried building the latest version of Spigot with BuildTools?

frigid ember
#

Yes

#

It doesn't give any red in the code itself

#

Not in pom.xml or my classes

blazing burrow
#

does anyone know a server hoster thats free and lets u use custom plugins?

#

yeah but if u use ethernet while hosting it holds up well

frigid ember
#

how much is it memory intensive to have many worlds on your server? like is having 10 players (not close to each other, let's say every player is 1000 blocks far away from each other) on same world same as having 10 players in different worlds?

wraith thicket
#

10 players in 1 world would probably take up less resources. But I doubt the difference would be large

frigid ember
#

Have you tried building the latest version of Spigot with BuildTools?
@wraith thicket do you have an idea what it could be if thats not it :/

#
    <repositories>
        <repository>
            <id>spigot-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot</artifactId>
            <version>1.16.1-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
#

works

#

But I'm still getting the error:/

sharp breach
#

huh

wraith thicket
#

@frigid ember The method is most definitely there and working just as it should.
Try on the latest version, which at the time of writing is git-Spigot-9639cf7-0458f60

sour edge
#

hello. I am trying to set up a new work with spigot 1.16.1, running java 12.0.1 on ubuntu behind a ngix proxy and OPNsense firewall. I have tcp/udp port 25565 being forward in OPNsense but I am getting io.netty.channel.AbstractChannel$ConnectException connection timed out: no further information.

#

Am I missing something

#

I can connect local using the local machine Ip address

frigid ember
#

@frigid ember The method is most definitely there and working just as it should.
Try on the latest version, which at the time of writing is git-Spigot-9639cf7-0458f60
@wraith thicket what do I do with the git-Spigot-9639cf7-0458f60?

wraith thicket
#

Just build the up to date Spigot jar with build tools and you'll get that version of the software

frigid ember
#

Ok

#

What do I do with that version?

wraith thicket
#

Run the server ...

crimson sandal
#

Oh man, I've been doing all my NMS stuff and totally forgot Paper's NMS can be completely different

#

sigh....

#

Paper's TileEntityChest is literally completely different to Spigot like whyyy

outer osprey
#

What is the plugin for players to destroy only blocks placed by other players so that they cannot destroy the lobby etc.
thanks in advance

chrome lark
#

Only thing we change is the tick logic?

#

Coz, you know, ticking chests just for an animation is 10/10

outer osprey
#

I dont understand you xD

quick arch
#

that was for jameslfc19

outer osprey
#

sorry i am not the best english I did not notice this question

crimson sandal
#

Yeah true, I just extend the spigot TileEntityChest for my plugin and it was resulting in double chest opening sounds πŸ˜„ The Paper way is definitely way more efficient πŸ˜„

#

My extended class basically does the same thing πŸ˜„

#

Ah nice, Overriding startOpen() fixes it πŸ˜›

#

Does Paper start loading chunks earlier than Spigot does too?

#

Because I got some NPE from ChunkLoadEvents due to my plugin not being fully initialised πŸ€¦β€β™‚οΈ Only realised after deploying today too πŸ˜„

chrome lark
#

Shouldn't do? that would imply you're registering stuff before your plugin has init'd

frigid ember
#

hi, In my plugin i open an inventory, but I dont know how to make that players can put items in that inventory

crimson sandal
#

Well I load my config 1 tick after the onEnable() in Spigot it seems to work fine, but Paper it doesn't. I guess maybe paper loads chunks immediately on that first tick and Spigot doesn't, was a weird find anyway πŸ˜„

frigid ember
#

any1 could help?

fair abyss
#

cant player put item on inventory? πŸ˜›

#

yes he can

#

when you cancel click event you also prevent this

#

check your invventory click event code @frigid ember

frigid ember
#

no

#

but

#

on a certain

#

inventory

#

how do i check if its a certain inventory

#

or not

fair abyss
#

check its title

#

@crimson sandal register your event when your plugin is fully initialized.

#

or events*

frigid ember
#

any1 knows ?

fair abyss
#

just read chat...

frigid ember
#

what you said doesnt make sense

#

I didnt code it yet cuz idk how to do it

fair abyss
#

so you can just ask

#

or google it its simle

#

checking inventory's title should make sense to everyone

frigid ember
#

dude

#

we cant

#

check an inventory's title

fair abyss
#

why you cant

frigid ember
#

its pretty obvious

#

should make sense to everyone

#

we can't

#

we just can't

fair abyss
#

really

quick arch
#

you can in the inventory click event in 1.13+

fair abyss
#

why you fucking cant write simplest code

frigid ember
#

king

#

lmao

fair abyss
#

or just ask how

frigid ember
#

ur funny dude

fair abyss
#

and you can check any inventorys title

#

not just 1.13

#

even 1.8

quick arch
#

^

fair abyss
#

"i just cant"really makes no sense

#

why you cant

#

if you tell we will help

frigid ember
#

ok

#

give me the method

#

if you are so good

fair abyss
#

...

#

he just asked for if statement.

#

and said "if you so good"

quick arch
#

oh boy, if you can't be arsed to look at the documentation, then you're not fit for a programmer.

frigid ember
#

bruh

#

are you two kidding me

#

?

#

you guys certainly aren't here cuz ur programmers

fair abyss
#

whats your version

#

so i can give EXACT document

frigid ember
quick arch
#

There's thousands of threads about inventory names

fair abyss
#

here 1.15 and 1.16's api are same for inventory view

quick arch
fair abyss
frigid ember
#

I see

fair abyss
#

you can just get InventoryClickEvent#getView#getTitle

frigid ember
#

Inventoryview

fair abyss
#

@outer osprey just search for worldguard

#

its what you are looking for

#

maybe some complicated to you at first times

#

but you can learn it not very hard
check regions and flags

vast trench
#

Does multiverse have a discord?

fair abyss
#

@vast trench yes it was has

#

but dont know if it was offical

#

just search on its spigot page

frigid ember
#
[01:57:38] [Server thread/WARN]: Lazinq was kicked for floating a vehicle too long!```
fair abyss
frigid ember
#

How would I deny these types of kicks

fair abyss
#

@frigid ember check spigot.yml

#

theres should treshholds for this

frigid ember
#

no not in the server itself

#

:/

#

to code it

fair abyss
#

idk

wraith moth
#

does tnt trigger BlockExplodeEvent?

fair abyss
#

yes far as i know in 1.8

#

@frigid ember i dont think you can do that without some hack

#

you can edit spigot.yml when plugin initialize but its not recommended and you wont have latest changed on entire run

frigid ember
#

theres almost always a way:)

quick arch
#

allow-flight is false

#

so they get kicked in mid air

#

but uh... turning that to true is not good either

frigid ember
#

no

#

hackers

fair abyss
#

?

frigid ember
#
floating a vehicle```
#

only need it when a player floats a vehicle for too long

fair abyss
#

do you want to disable this or increase this?

quick arch
#

That's also because of allow-flight being false

frigid ember
#

I want to disable kickking for floating a vehicle too long

fair abyss
#

nvm in both way i dont think theres a way for this with code

frigid ember
#

but not in the server files