#help-development

1 messages · Page 1842 of 1

ember estuary
#

b() is nothing

#

cuz that returns void itself

waxen plinth
#

It's still shown like you're trying to return a value

ember estuary
#

yeah but i am not returning a value

waxen plinth
#

Syntactically it doesn't matter

#

I don't know what you want from me

#

Like yes it doesn't work

#

Yes it's intentional

#

There is no reason you should need to return a void value from a void function anyways

#

What's the problem

#

C is a different language, python is a different language, so they have different rules

ember estuary
#

So basically I am wondering if i can put early-return and error-message in a single line, as possible in any other language:

if (!condition1Fulfilled) {
  System.out.println("Condition 1 not fulfilled");
  return;
} 

if (!condition2Fulfilled) {
  System.out.println("Condition 2 not fulfilled");
  return;
}

Would be way nicer in a single line


if (!condition1Fulfilled) return System.out.println("Condition 1 not fulfilled");
if (!condition2Fulfilled) return System.out.println("Condition 2 not fulfilled");
waxen plinth
#

You can't

#

You can make it return a string if there was an error

#

Or throw an exception

ember estuary
#

true but im trying to call
player.sendMessage()

#

to tell him his args are wrong

#

and in what way they are wrong

waxen plinth
#

I don't know why you lead with the a vs b thing instead of your actual use case

#

Okay then return a string in your helper method

#

That or use a command framework that does this for you

#

I have one you could use and there are plenty of others

candid galleon
#

Your first example looks much cleaner imo

#

you could also just make it return a string

#

and then print out the result of the function

ivory sleet
ember estuary
#

wait yeah, nvm, have to do it like that

candid galleon
#

System.out.println(getCommandResult());

#

and then
String getCommandResult {

ember estuary
#

i see

ivory sleet
#

Anyways if you want to have returnable void, you could sort of use a monad like Optional::flatMap

#

Not the same but yeah

waxen plinth
#

It's also best to use a command framework

ivory sleet
waxen plinth
#

Like I know you're not asking for one but I cannot stress enough how much of a difference it makes

foggy estuary
vestal moat
#

can i use color codes (like &c) in log messages? i mean bungee

wind tulip
#

How do I remove damage from the damage event, but keep knockback? event.setDamage seems to remove kb althogether

#

altogether*

waxen plinth
wind tulip
#

kk

patent horizon
#

im trying to pull the location of a projectile hit event regardless if it hit the ground or an entity

#

how would i do this?

ancient plank
#

check if it hit a block/entity, then get the location fo that block/entity?

patent horizon
ancient plank
#

Probably

patent horizon
#

so my projectile is a wither skull, if a player hits the skull and causes it to explode, does that still count as an entity hit?

waxen plinth
#

Make a helper method

#
public Location getHitLocation(ProjectileHitEvent e) {
  return e.getHitBlock() != null ? e.getHitBlock().getLocation() : e.getHitEntity().getLocation();
}```
strange patrol
#

Say I got two plugin jars: One for spigot and one for paper. Is it allowed to submit an external download URL to my spigot resource which shows a download link for paper and spigot separately and explains what the difference is?

visual tide
#

why have 2? every spigot plugin should work on paper

strange patrol
#

Apparently "advertising paper" at least in the jar isn't allowed, so I wanna make sure doing it that way (the link with two jars) is fine first

young knoll
#

I would still just use one jar

patent horizon
#

anyone know of a gui manager library or smth

#

or like a really good item builder system

waxen plinth
#

I've got one

#

What are you trying to do exactly?

patent horizon
#

does yours make you cry late at nights

waxen plinth
#

No

young knoll
#

Yes

#

Oh

waxen plinth
#

What are you trying to do though

patent horizon
#

...make a gui

young knoll
#

I need to remake my item builder, thanks for the reminder

waxen plinth
#

So I can gauge whether mine would be good for it

#

Make a gui that does what

#

What functionality does it need

patent horizon
#

i have a system for gui pagination already

waxen plinth
#

Mine has that built in

patent horizon
#

oh rlly?

patent horizon
#

it really just needs to have a clean way of handling lore, playerskulls, pagination

waxen plinth
#

Ah

#

My item builder doesn't do skulls

patent horizon
#

f

waxen plinth
#

But it does everything else easily

#

And I guess you could just make a helper method for skulls

#

¯_(ツ)_/¯

#

I should add that to my library

#

brb gonna go do that

patent horizon
#
ItemButton button = ItemButton.create(new ItemBuilder(Material.EMERALD_BLOCK)
    .setName("Click me!"), e -> {
    e.getPlayer().sendMessage("You clicked me!");
});
gui.addButton(button, 13);``` this looks sexy
#

sexier than whatever i have -_-

waxen plinth
#

Glad you think so

patent horizon
#

i made a system that would just pull all material, count, name, lore, etc. from a yaml file

foggy estuary
patent horizon
#

that idea got shit on

waxen plinth
#

I mean I've considered something like that before

ivory sleet
#

yeah it looks nice with the lambda altho a bit verbose maybe

waxen plinth
#

Both are valid approaches

patent horizon
#

whats verbose

waxen plinth
#

The yaml way separates data from logic more

#

Which is always good

ivory sleet
#

basically

patent horizon
#

java needs a snazzier way of handling blocking npes

#

like kotlin's thing?.thing?.thing?

#

except maybe not as... wedge-y

waxen plinth
#

Optionals

#

Gotta love em

ivory sleet
#

Which are verbose and not at all clean if you overuse them :/

patent horizon
#

yup

#

pain

waxen plinth
#

They can really, really clean stuff up though

#

Like look how much I was able to clean up the lore comparison using optionals

#

25 lines to 1

patent horizon
#

thats a whole lot of red

waxen plinth
#

Optional.ofNullable(a.getItemMeta()).map(ItemMeta::getLore).equals(Optional.ofNullable(b.getItemMeta()).map(ItemMeta::getLore))) 😌

ivory sleet
#

The only good thing about optionals are the they’re in fact higher level than the low level null shit you’d otherwise have to deal with, and that you can avoid having a Nullable api.

waxen plinth
#

Nah optionals are great

#

Even if stuff does return null you can use ofNullable and then map to clean up your logic a lot like I did here

patent horizon
#

if only i knew half the shit you were saying meant Pensive_Cowboy

ivory sleet
#

Well you should at least use a new line per method

#

and I mean, you could get just a clean code without optional

#

A little bit more effort

#

But it’s not a big deal imho

waxen plinth
#

Hey conclure

#

Do you know if 1.8 SkullMeta's setOwner is by name?

#

I'm guessing it is since it takes a string

ivory sleet
#

Yeah pretty sure it was

waxen plinth
#

Ok cool

#

Alright sweet, I created an ItemUtils.skull method

#

Let's see if it actually works lol

#

Gotta test it on 1.18 and 1.8 which is annoying

#

Alright cool it works on both

#

@patent horizon Ok so now my library has everything you want 🥲

patent horizon
#

lit

#

so does your lib handle EventHandlers for buttons and such?

waxen plinth
#

Yes

patent horizon
#

nice

waxen plinth
#

It handles... lots of things.

#

Commands and config are the other big two

patent horizon
#

im still a moron at coding concepts... does this lib need a plugin on my server or smth?

#

i know some things like netherboard do

waxen plinth
#

You can use it as a plugin dependency, or you can shade it into your plugin

#

Up to you

lavish hemlock
#

is JavaPlugin#onDisable triggered during server shutdown?

patent horizon
#

making it a plugin dependency would mean i'd need the plugin in my server right?

waxen plinth
lavish hemlock
#

was just wondering since it didn't look like some of my code executed on shutdown

patent horizon
waxen plinth
#

If the server hard crashes then disable won't be run

patent horizon
#

what is shading?

#

other than throwing tea at celebrities

waxen plinth
#

Shading is using a build system to unpack another jar into yours

lavish hemlock
waxen plinth
#

So you can put all the needed dependencies into your own jar rather than requiring them to be installed as plugins

patent horizon
#

oh so i can just shove your pom.xml stuff into my project and maven will do it for me?

waxen plinth
#

It does increase your jar size though

#

If you have it set up for shading, yes

patent horizon
waxen plinth
#

Though if you're going to shade all of redlib you should check out its other parts because it has a lot going on

#

Not really sure since I don't use maven but I'm sure it's not hard

#

You can probably find a good guide

patent horizon
#

ah ok

#

OHHHHH

#

youre the owner of redlib

#

lol i may have memed on your github homepage for not really being specific in what it made better lmfao

waxen plinth
#

Really?

#

Cause it has an extensive wiki

#

I guess it is at the bottom of the readme

visual tide
waxen plinth
#

Interesting

wet breach
visual tide
#

it does sometimes

wet breach
#

worth testing it though because it does reduce the size 🙂

visual tide
#

but rarely in my experience

#

you should anyway

stone sinew
visual tide
#

mapped

stone sinew
# visual tide mapped

Yeah I've tried it lol. It commented out cause I was testing what broke without it.

lavish hemlock
#

So

#

for some reason doing entity.setCustomName(null)

#

doesn't actually clear the name?

#

it sets the entity's custom name to their mob name

#

e.g. Creeper on a creeper

#

it's either that or getCustomName() is returning the mob name

foggy estuary
#

[Server] INFO org.bukkit.command.CommandException: Unhandled exception executing command 'start' in plugin

#

does anyone know what this means

lavish hemlock
#

likely means an exception occurred in your start command

foggy estuary
#

i cant find it

#

recon you could look at my code?

wet breach
lavish hemlock
#

yeah

wet breach
#

if you clear a custom name, it will revert to the mobs default name

lavish hemlock
#

ah

ember estuary
#
List<Map.Entry<String, YamlConfiguration>> results = new ArrayList<>(playerHashmap.entrySet());
results.sort(Comparator.comparing(e -> e.getValue().getInt("Balance")));

i have this method. but i wanna reverse the order of the comparator.
however when I do

List<Map.Entry<String, YamlConfiguration>> results = new ArrayList<>(playerHashmap.entrySet());
results.sort(Comparator.comparing(e -> e.getValue().getInt("Balance")).reversed()); //added .reversed() here

the .getValue() turns red.
Why and how to fix?

wet breach
#

@lavish hemlock use setCustomNameVisible(boolean)

#

if set to false, makes it invisible

lavish hemlock
wet breach
#

um not sure, but I don't think you can really remove names either though so its better then nothing

waxen plinth
lavish hemlock
#

this is why I hate Bukkit

ember estuary
#

any way to do it inline tho?

waxen plinth
#

And then call .reversed() within the sort call

ember estuary
#

had it outside before, but all in one line is nicer

waxen plinth
#

I understand but the compiler doesn't really know how to type inference the entire expression when multiple method calls are made

#

Even when it seems like it should be obvious

ember estuary
#

how does it even know the types when doing Comparator.comparing(e -> e.getValue().getInt("Balance")) without the reversed

#

never rlly understood how lambda does that in the first place xD

#

is there any alternative to do the reversing in that line?

#

maybe a function on List ?

#

maybe Collections.reverse might work, ill try that

lavish hemlock
#

only solution I've found so far for this is

#

adding a mob to a team that hides nametags

#

but that's still a very gross method

#

so I might need to import a nametag API

quaint mantle
#

hihi, how should i convert a List<Player> into a Player[], i tried casting Player[] to #toArray(), and i got an error..

lavish hemlock
#

list.toArray(new Player[0]);

quaint mantle
#

oh thats a thing?

ember estuary
hasty prawn
#

@ivory sleet Do you have any idea what this error is about?

#

It happens seemingly randomly when I try building

karmic bear
#

hey, im writing a core plugin from scratch

#

and im saving player data like rank, money, etc

#

but should I use libs for that kind of stuff? like Vault for money etc

#

and rank with essentials or something (as dependency)

hasty prawn
#

ServerLevel and WorldServer are the same class, ServerLevel is Mojang Maps, WorldServer is Spigot's.

#

They really shouldn't exist together... Are you depending on both mappings?

#

Yeah that's probably why it's confused.

eternal oxide
#
        <!--Bukkit/Spigot API -->
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>${project.spigotVersion}</version>
            <scope>provided</scope>
        </dependency>
        <!-- Spigot Javadocs -->
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>${project.spigotVersion}</version>
            <type>javadoc</type>
            <scope>provided</scope>
        </dependency>
        <!--Bukkit/Spigot NMS -->
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot</artifactId>
            <version>${project.spigotVersion}</version>
            <classifier>remapped-mojang</classifier>
            <scope>provided</scope>
        </dependency>```
#

try adding <classifier>shaded</classifier> to your top one

hasty prawn
#

CompoundTag in Mojang
NBTTagCompound in Spigot

?

#

Why do you need non-mapped for IBlockData

#

You probably did it wrong then, as much as I want to blame the mappings for problems, if you do it right, it gets mapped correctly

#

🤷‍♂️ the mappings are super nice once you get them working tbh

#

I thought md_5 had posted the exact pom you needed for remapping with maven?

eternal oxide
#

Thsi provides the Spigot API and dependencies just fine. You just need a second for the remapped. xml <!--Bukkit/Spigot API --> <dependency> <groupId>org.spigotmc</groupId> <artifactId>spigot-api</artifactId> <version>${project.spigotVersion}</version> <classifier>shaded</classifier> <scope>provided</scope> </dependency>

stone light
#

does anyone know why my packages are showing up like this instead of normal packages? I think I screwed something up

eternal oxide
#

thats just a package symbol

unreal quartz
#

it is at the top of the left pane to change the view mode

stone light
#

I meant package

lavish hemlock
#

how do I add an entity to a team?

wet breach
unreal quartz
#

i doubt entities can belong to teams

lavish hemlock
#

I've seen a lot of posts that hint at it

eternal oxide
#

You add entities by UUID. Players by name

unreal quartz
#

i stand corrected then

lavish hemlock
#

and how do I do that?

wet breach
#

Entity.getUUID

lavish hemlock
#

I know how to get ID

#

I need to know how to add the entity to a team

eternal oxide
#

get its ID toString

lavish hemlock
#

also wait why are players by-name?

#

can I do players by-ID?

eternal oxide
#

no

lavish hemlock
#

that seems like an oversight

#

actually it's an oversight I have to do toString() anyways

#

god I hate Bukkit

cold pawn
#

Does anyone know how I can change the name on a players nametag? and is there also a way I can hide a players name tag?

lavish hemlock
buoyant viper
#

maowkit

mellow gulch
#

you can add everyone with hidden names to a team and have the team set to never show the nametag

#

if you don't want to use packets

lavish hemlock
#

but it doesn't fix their first question, actually changing the name

wet breach
#

Players can have custom names

lavish hemlock
eternal oxide
#

Display Name

lavish hemlock
#

I don't know if display name actually affects the nameplate tho

unreal quartz
#

that wont change the nameplate though right

cold pawn
#

No it wont

unreal quartz
#

because it is the method essentials' /nick uses

lavish hemlock
#

yeah the docs say it doesn't

#

reiterating: "god I hate Bukkit"

#

and I would fork it to add changes but eh

#

I'm too lazy

#

(I also don't know how to contribute to Spigot's codebase sooo yeah lmao)

opal juniper
#

therefore it will never get better

cold pawn
#

How would I go about using packets to achieve that

lavish hemlock
#

dunno, never used them

cold pawn
#

Same

lavish hemlock
#

you're apparently supposed to use ProtocolLib

wet breach
#

wonder if this would change the nameplate as well

lavish hemlock
wet breach
#

given how the player list works

mellow gulch
cold pawn
#

Player list name is tablist

wet breach
cold pawn
#

im pretty sure

opal juniper
wet breach
#

however we have our answer that it doesn't work

#

but now you know why I suggested it 😛

cold pawn
#

O ok

ornate heart
#

how does one create a mob head stack in 1.8 🤔

inner mesa
#

Is there a good gif player plugin for spigot?

wet breach
foggy estuary
#

how do i register two of the same named commands into main

#

this.getCommand("start").setExecutor(new BossS(this));

#

this.getCommand("start").setExecutor(new BlocksRemoving());

#

however this last one makes plugin just not work why is that

eternal oxide
#

you don't

patent horizon
#

you shouldnt have two of the same commands

#

how tf you gonna tell the difference between the two in game

foggy estuary
#

they should all be in same class?

#

well no i was trying to sort it out so i can remember the functions of each thing

patent horizon
#

anyone have a good event listener registration system?

wet breach
#

so if what you are looking for is how to organize commands and what not or have commands do more then one thing, then you just make that command handle arguments 🙂

foggy estuary
#

ok thanks

wet breach
#

an example of how to do such things 🙂

foggy estuary
#

thank you so much man.

wet breach
#

you still need to register the main command in the main class

foggy estuary
#

yeah

wet breach
#

hope that helps you out 🙂

patent horizon
#

does Bukkit.getWorlds() only contain currently loaded worlds?

eternal oxide
#

yes

wooden fable
#

Hey, i'm trying to start using nms. But when i change spigot-api to spigot it will give me this error:
Dependency 'org.spigotmc:spigot:1.17-R0.1-SNAPSHOT' not found

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

I ran build tools
Can someone help me please?

runic mesa
#

How can i replace all of a certain type of block in a chunk

sullen marlin
#

You need to run buildtools

#

For that version

wooden fable
#

I did that

eternal oxide
#

You can;t have, or you somehow broke yoru local repo

quaint mantle
#

how to get max player size in bungeecord server?

#

var server = ProxyServer.getInstance().servers[key]!!

sullen marlin
#

1.17 is not 1.17.1

wooden fable
patent horizon
halcyon shuttle
#

Hey
Hopefully someone can help me with that
So im starting with plugin making and im already having problems, when im starting my server with custom plugin this appears:

[23:42:14 INFO]: [my-plugin] Loading my-plugin v0.1.0
[23:42:14 ERROR]: [org.bukkit.craftbukkit.v1_17_R1.CraftServer] J2V8 native library not loaded initializing my-plugin v0.1.0 (Is it up to date?)
java.lang.IllegalStateException: J2V8 native library not loaded
at com.eclipsesource.v8.V8.checkNativeLibraryLoaded(V8.java:195) ~[my-plugin.jar:?]
at com.eclipsesource.v8.V8.createV8Runtime(V8.java:149) ~[my-plugin.jar:?]
at com.eclipsesource.v8.V8.createV8Runtime(V8.java:125) ~[my-plugin.jar:?]
at com.eclipsesource.v8.NodeJS.createNodeJS(NodeJS.java:58) ~[my-plugin.jar:?]
at com.eclipsesource.v8.NodeJS.createNodeJS(NodeJS.java:45) ~[my-plugin.jar:?]
at io.customrealms.runtime.Runtime.<init>(Runtime.java:51) ~[my-plugin.jar:?]
at io.customrealms.jsplugin.JsPlugin.setup(JsPlugin.java:39) ~[my-plugin.jar:?]
at io.customrealms.jsplugin.JsPlugin.<init>(JsPlugin.java:29) ~[my-plugin.jar:?]
at io.customrealms.MainPlugin.onLoad(MainPlugin.java:30) ~[my-plugin.jar:?]

Any solutions on that?

quaint mantle
halcyon shuttle
late sonnet
# patent horizon

why the boolean in the foreach? maybe you want filter and later check if the stream has elements

quaint mantle
halcyon shuttle
#

But how

quaint mantle
#

idk

#

:/

patent horizon
sullen marlin
#

Whatever you're doing with j2v8 doesn't sound like a basic thing

halcyon shuttle
#

Sir if we were on google store rn id give this opinion 0 stars

sullen marlin
#

To be clear you're trying to make a plugin to load other plugins in JavaScript?

halcyon shuttle
#

Its my first ever actually

sullen marlin
#

This doesn't sound simple

#

Plugins are usually written in java not JavaScript

halcyon shuttle
#

I can send the whole plugin if u want me to

halcyon shuttle
sullen marlin
#

What is customrealms? Is this you?

halcyon shuttle
#

Im using customrealms to program

sullen marlin
#

Would help if you didn't cut out the whole error

halcyon shuttle
#

Its site simmilar to eclipse and stuff

sullen marlin
#

Well whatever customrealms is it's not working

#

I suggest you ask them for help

patent horizon
sullen marlin
#

Otherwise we can help you program a plugin in java

halcyon shuttle
#

Well as i mentioned im a newbie, so where would you guys reccomend to write plugins

quaint mantle
#

you can just clone the thing directly through the web

sullen marlin
#

Idk or YouTube or something

#

Customrealms has nothing to do with spigot

#

You can use it, but unlikely anyone here can help you

#

Try their support

quaint mantle
#

git clone https://hub.spigotmc.org/stash/scm/SPIGOT/craftbukkit

halcyon shuttle
#

Oh btw is java easier to code in than javascript?

quaint mantle
#

how to get server tps

waxen plinth
#

/tps

quaint mantle
#

in java

waxen plinth
#

Don't think there's an api method for it

quaint mantle
#

yeah i checked

#

any way

waxen plinth
#

You could always measure the ms per tick manually

sullen marlin
#

?xy

undone axleBOT
waxen plinth
#

And then use that to figure out the tps

sullen marlin
#

TPS is a meaningless measure

#

You need to figure out what exactly you need and why

quaint mantle
#

he want to modify tps command i guess

turbid cradle
#

I'm using the 1.8 Spigot API:

        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.8.8-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>

When Using the sound enums, my options have names of newer sounds:
e.g "ENTITY_ENDERMEN_TELEPORT" instead of "ENDERMEN_TELEPORT"

which throws an error:

Caused by: java.lang.NoSuchFieldError: ENTITY_ENDERMEN_TELEPORT```

Anything I can do about this?
sullen marlin
#

You have a newer version in your classpath from somewhere else

turbid cradle
#

not sure if I know what class path means, what should I do?

sullen marlin
#

Remove your other dependencies till it works

quaint mantle
#

how to change proxied player to other server

sullen marlin
#

Look at the bungee plugin message channel wiki page

sullen marlin
#

I'm sure you can find it on Google

hasty prawn
#

md_5 did you see my ping from earlier wuv_u

quaint mantle
turbid cradle
hasty prawn
#

.

sullen marlin
#

Idk colon works for me on linux

hasty prawn
#

Odd, why would the Linux and Windows options be different lol

#

But yeah according to even the java -help list it's semicolon, on Windows atleast

undone axleBOT
quaint mantle
#

how to verify if a bungee server is online?

waxen plinth
sullen marlin
#

so lol

hasty prawn
#

Well that is weird LOL

#

Oh well, atleast we know now

sullen marlin
#

wonder if there is a cross platform way to do it

turbid cradle
wet breach
#

not that the option is

hasty prawn
#

That's what I meant

patent horizon
#

is there a way i can force a tree to be grown somewhere similar to when you bonemeal a sapling

sullen marlin
#

yes

#

search the javadocs for tree

patent horizon
#

org.bukkit.World.generateTree() ?

quaint mantle
#

guys nms so gud i can make a custom advancement tab for my own advancements with resource pack boissss

patent horizon
#

ok

hasty prawn
patent horizon
#

does tnt exploding count as an entity or a block?

wet breach
#

entity

#

BlockExplodeEvent is to get the blocks in relation to the explosion

quaint mantle
#

Help, this code has error ( BungeeCord Command )

sender.sendMessage(TextComponent("Test").setColor(ChatColor.DARK_RED))

None of the following functions can be called with the arguments supplied.
sendMessage(vararg BaseComponent!) defined in net.md_5.bungee.api.CommandSender
sendMessage(String!) defined in net.md_5.bungee.api.CommandSender
sendMessage(BaseComponent!) defined in net.md_5.bungee.api.CommandSender

wet breach
#

EntityExplodeEvent to get the entity responsible for the explosion 🙂

next stratus
#

So... Someone called me out for not supporting lower than 1.13 am I doing the right choice?

wet breach
#

personally I only support latest

sturdy gate
#

test with sender.spigot().sendMessage

quaint mantle
#

ban him

#

!!!11

sullen marlin
next stratus
#

I see no point in using legacy versions.. They want me to support 1.8

ivory sleet
#

Kotlin roo_confuse

quaint mantle
quaint mantle
undone axleBOT
quaint mantle
quaint mantle
next stratus
#

He left my discord cursing when I told him to upgrade to 1.16 or something

quaint mantle
#

?learnkotlin

#

why no command

ivory sleet
#

Kodydev TextComponent::setColor returns void/Unit right

quaint mantle
quaint mantle
#

he did being agressive right?

ivory sleet
#

Which is not a type any function takes

wet breach
next stratus
#

I don't know if I'm messing up not supporting that version

wet breach
#

however there is no reason to support a buggy version like 1.8

next stratus
#

I see no difference in combat lol

wet breach
#

or even significantly older versions in general

next stratus
#

Swords swing the same

wet breach
next stratus
#

Just click faster?

quaint mantle
ivory sleet
wet breach
#

in 1.8 and prior all clicks are registered

#

in higher versions it is rate limited

next stratus
#

I see no issue in it being rate limited feels fine

wet breach
#

well sure, it just means you can't spam 20 clicks and have all 20 clicks be registered

#

only about half those clicks will be

next stratus
#

Pvp is a waste of time tho lol

quaint mantle
#

but not 1.8.9

ivory sleet
#

Well if you change the hit cooldown it might be possible

quaint mantle
ivory sleet
#

like generally speaking, it’s possibly to replicate all provided functionalities of 1.8 in 1.17 or 1.18

quaint mantle
#

cOdInG wItHoUt 1.8 Is WaStEtImE

wet breach
#

either way @next stratus just know you are not alone in not supporting outdated versions 😛

#

whether it is the right choice or not, that is personal preference XD

#

plenty of us here who do not support outdated versions in their projects. I am one of them 😉

quaint mantle
quaint mantle
quaint mantle
next stratus
#

I mean that's how it works so

#

Why can't mojang just reverse changes and keep the pvp wanna be kids happy

quaint mantle
#

actually people nowadays can pvp better and they can just use 1 cps to combo people

#

and that is even possible with 1.9+

#

but to combo people

#

you need to first combo lock him

#

and that is why the spam click is good there

next stratus
#

Imo pvp should just go it's a waste of space

quaint mantle
#

and on 1.9+ the gamemodes mostly disappear

#

and you can only use axe, shield, not even rod or lava lul

torn shuttle
#

why even have a game, I don't play minecraft, it should just be a platform to which I push my plugins

wet breach
#

which it isn't designed that way XD

hasty prawn
#

Ah yes, just remove pvp all together, genius plan

wet breach
hasty prawn
#

It also started out as Cave Game whats your point

torn shuttle
#

graphics are cringe, I basically just use the in-game chat, turn minecraft into a chatroom app

wet breach
hasty prawn
#

So we should go back to alpha...?

wet breach
#

not sure why you keep going with the extremes o.O

hasty prawn
#

I mean it didn't have a lot of things that it has now, I don't understand what you're getting at.

wet breach
#

it did perfectly fine without pvp

torn shuttle
#

it sold for billions of dollars after adding pvp

#

let's be real here

wet breach
ivory sleet
#

Minecraft without pvp wasn’t bad or anything just a bit less engaging

torn shuttle
hasty prawn
#

PvP was basically added when Multiplayer was added

wet breach
#

I would have to disagree on that given how many game modes don't involve pvp at all

torn shuttle
#

no bedwars, no hunger games, no sick pvp montage videos, no idiots on youtube smacking each other for what I believe youtube has just notified me was a trillion views earlier this month

hasty prawn
#

Skyblock being a recent exception, although it still has combat elements.

ivory sleet
#

Sure pvp has evolved into a substantial genre concerning the game, although as frostalf said I also think the game would have done fine without any emphasis on pvp and its mechanics

torn shuttle
#

there is a big difference between fine and the most popular game of all time according to a few metrics

hasty prawn
#

I think it would have done fine without PvP, yes, but I don't think there's any argument that PvP has hurt Minecraft's popularity, and by no means should it be removed.

ivory sleet
#

This also depends on what you define pvp as, I mean players could create pvp even without any explicit hitting and shooting

wet breach
#

don't think they have a competitor still

torn shuttle
#

if minecraft refused to add player versus player combat someone else would've added it and ran with the money

hasty prawn
#

Terraria can be considered a competitor

#

And Terraria beats Minecraft to all hell when it comes to engaging gameplay.

torn shuttle
#

I don't think minecraft would have even 50% of the userbase it has without the pvp scene

#

and I think that's lowballing it

#

not because those people play pvp but because the people that play pvp keep pumping out videos which in turns feeds the ad machine

#

aren't some of the top yt video creators heavily into pvp even now?

wet breach
hasty prawn
#

Technoblade is PvP peepoGiggles

torn shuttle
#

pvp does more to minecraft than the sum of its parts

hasty prawn
wet breach
#

But I meant direct competitor

hasty prawn
#

They're both sandbox pixelart-ish games. Still pretty similar in some regards

wet breach
#

wouldn't say MC is sandbox

#

its more open world then anything

hasty prawn
torn shuttle
#

if mc isn't sandbox then I can't imagine what would be

hasty prawn
#

It's a sandbox. LOL

torn shuttle
#

mc is the only sandbox you can fill with literal sand blocks

wet breach
#

if you wanted to say minecraft creative mode is sandbox I would agree

#

but survival mode wise it is open world

torn shuttle
#

why?

quaint mantle
#

in pvp it is cancer world

#

people killing their mice by using some german pvp techniques

torn shuttle
hasty prawn
#

I mean, if you don't define Minecraft as a sandbox game, what is?

wet breach
#

Sandbox games are more similar to sim's then anything

#

for instance elite dangerous is a sim game

torn shuttle
#

I'd say that's an arbitrary definition but it is not a definition in the first place

#

and it is contrary to how everyone else defines these games

ancient plank
#

fun fact a game can have multiple genres

wet breach
#

Eve online is not open world because it doesn't let you interact with the world except in limited capacity and not because of limitations

torn shuttle
#

that's not what a sandbox game is

#

here's one definition

A video game with no linear storyline or specific goal, the player deriving amusement from a range of open-ended interactions or situations.

#

you gotta be faster on the draw my dude

ancient plank
#

I prefer my definition

hasty prawn
paper viper
#

the minecraft trailer says its a sandbox game

ancient plank
#

minecraft is the most sandbox game of sandbox games imo

hasty prawn
torn shuttle
#

mojang says it's a sandbox game, wikipedia says so as well, so does pretty much every gaming website out there

#

if you look for sandbox games on google, it is the first result

#

not a joke

hasty prawn
#

Lmao you're right

torn shuttle
#

so like I was saying, I can't imagine what would be a sandbox game if minecraft isn't one

wet breach
#

well we can disagree then

torn shuttle
#

well yes

#

in my side of we there's everyone

#

and on your side there's just you

ancient plank
#

can I hear your opinion on why its not a sandbox game, just curious @wet breach

wet breach
#

MC adheres to everything that an open world is

#

its only limitation is the game itself

hasty prawn
#

Isn't that the definition of sandbox catthonk

ancient plank
#

but it can be a sandbox and open world adelemThonk

torn shuttle
#

uh

#

yeah

torn shuttle
#

it's a sandbox open world game

ancient plank
#

gta 5 is open world, while being sandbox

torn shuttle
#

these things are not mutually exclusive

#

it's even a procedurally generated open world sandbox game

#

we can keep adding affixes without them stopping it from being a sandbox game

#

the only affix we can't add is linear

wet breach
#

I would agree on the sandbox part if we are talking about creative mode because that perfectly fits the definition of sandbox

#

the survival side does not

torn shuttle
#

what makes them materially different?

ancient plank
#

A sandbox game is a video game with a gameplay element that gives the player a great degree of creativity to complete tasks towards a goal within the game, if such a goal exists.
legit even survival minecraft fits the definition of a sandbox game

wet breach
#

because creative mode is the very definition of sandbox where you are not inhibited by anything to freely create as you please

torn shuttle
hasty prawn
#

What's preventing you from creating whatever you please in Survival

torn shuttle
#

so none of those games are sandbox games because all of the main game modes are not "creative"

#

they might have a creative mode in it

#

but it is not the main mode

wet breach
#

gta5 I wouldn't say is sandbox because you can only interact in a limited fashion. You are not exactly free to do whatever you want

torn shuttle
#

it's a pointless thing to argue because that's not what a sandbox game's definition is

#

no game lets you do what you want

#

I want my game to bring me coffee irl

wet breach
#

that isn't what I meant

torn shuttle
#

but I am forced to make a plugin for that

#

and hire a maid

wet breach
#

in Gta 5 you can't create a building

#

nor can you blow one up

prime reef
#

How do y'all handle running unit tests on plugins? if at all

torn shuttle
#

apply that standard to literally anything frostalf

ancient plank
#

alright people are asking questions this is where I ask the discussion to be moved

torn shuttle
#

in creative minecraft you can't demolish a house with realistic physics either

ancient plank
torn shuttle
wet breach
prime reef
torn shuttle
prime reef
#

time to recompile the plugin and reload the server every time anything changes I suppose

ancient plank
#

I mean if you have decent hardware that process is fast anyways

prime reef
#

it's not a hardware bottleneck, it's just irritating

wet breach
prime reef
#

library plugin

ancient plank
#

isn't there like

torn shuttle
#

the bit about faking is a nightmare

ancient plank
#

that unitbukkit or smth for testing plugins without a server

prime reef
#

that'd be useful

torn shuttle
#

think of all the things other plugins can modify

wet breach
#

if you want to hotswap your jar while the server is running, that is definitely a thing, however the tools to do that are not free however you are free to create your own just a pain to do that too XD

torn shuttle
#

and comes with its own bugs and limitations

prime reef
#

and reloading the server

#

it's free

torn shuttle
#

and doesn't work in a number of cases

#

and can cause crashes

wet breach
prime reef
#

i wouldn't trust a runtime hotswapper because part of this library literally involves hotswapping modules

#

i mean, I don't really need the classpath refreshed anyway

ancient plank
#

mockbukkit

prime reef
#

i'll check that out, thanks mate

ancient plank
#

I've never used mockbukkit but ppl say its good for testing

paper viper
#

mockbukkit will break severely tho if u use something like version checking Bukkit.getVersion or smthing

#

for nms

ancient plank
#

f

torn shuttle
#

lol

paper viper
#

and also anything classpath related

#

it will die

#

lol

torn shuttle
#

well that's a nonstarter for me

#

my config files are initialized via reflections because I am a cool kid and I program with hacker sunglasses on

#

and also there's about 1k config files in there I think

torn shuttle
#

old pic of me

#

I had lasik last week

quaint mantle
#

anyone down to build a bunngeecord Minecraft server and develop together dm if your down

waxen plinth
#

wrong place buddy

torn shuttle
#

^

waxen plinth
#

this is a developer help chat not a recruitment chat

torn shuttle
#

yeah here you show up to ask people to feed you code for your plugin line by line

waxen plinth
#

🌚

quaint mantle
#

where would i find a discord server of something like that

sterile token
#

Nice btw

#

Why i cannot transfer artifact to local web server?

paper viper
#

Can we see ur configuration?

#

And also you made sure the repo actually exists right

#

(dont include passcode and username in build configuraiton please)

#

lol

lethal coral
#

Whenever I try to get the entity object from a uuid it doesn't work for some reason.

                    System.out.println("addingentity");
                    System.out.println(UUID.fromString(e));
                    entries.add(Bukkit.getServer().getEntity(UUID.fromString(e)));

(entries doesn't contain the entity at the end)

paper viper
#

what is e

sterile token
#

I dont remember who told me that you can deploy artifacts direct to a web server

paper viper
#

exists

sterile token
#

Yeah its a Apache2 server running on local

paper viper
#

if u go there do you see folders or anything?

sterile token
#

yes i see the folder

lethal coral
sterile token
paper viper
#

thats.. all?

#

no maven publishing or anything?

sterile token
#

That all

#

Do i need to add something more?

#

And that my pom.xml (app)

lethal coral
# lethal coral Whenever I try to get the entity object from a uuid it doesn't work for some rea...
ArrayList<Entity> entries = new ArrayList<>();
            for(String e : team.getSingle(event).getEntries()){
                System.out.println(e);
                if(e.contains("-")){
                    System.out.println("addingentity");
                    System.out.println(UUID.fromString(e));
                    entries.add(Bukkit.getServer().getEntity(UUID.fromString(e)));
                }
                else{
                    entries.add(Bukkit.getServer().getPlayer(e));
                }
            }
            return entries.toArray(new Entity[entries.size()]);

"full code"
getSingle returns the team value btw (so that I can do things with that team object) so just ignore that

sterile token
#

Its correct right?

#

Im getting a 405 error

#

Im seeing that its a server problem

sullen marlin
#

you can only deploy a release version once

#

change to 1.0-SNAPSHOT

sterile token
#

Explain again

#

This are you saying?

sullen marlin
#

no

#

your <version>

#

youll get 405 if you already deployed it

#

you need to add -SNAPSHOT to it

#

actually yes, keep that snapshotRepository too though

sterile token
#

So it will be like this

sullen marlin
#

yes but also fix <version

sterile token
#

ok

sullen marlin
#

also might need different IDs for each

quaint mantle
#

wonder what will we name this?
JsonArray requirements = // some code here
String[][] whatToName = new String[requirements.size()][]

sterile token
sterile token
sullen marlin
#

if the id changes then yes

sterile token
#

but which id i use there? snapshot or repository?

mighty sparrow
#

I was looking for how to use the /execute with plugin commands and it didnt work. You said that it is a wontfix for you. So there are no ways I can do this ?

sterile token
#

So i dont know what happening

sullen marlin
#

well did you install a repository server like nexus there

#

you cant just point a webserver there

sterile token
#

Ahh

#

Really?

sullen marlin
#

well you can, but you need to deploy to a file:// and have the webserver serve it

#

you cant just deploy over http to apache/nginx

sterile token
#

Ahh okay. So either need to use file://webserver-path or made a custom deploy plugin?

sullen marlin
#

yes

sterile token
#

And then i can use it as <dependency> in other projects?

sullen marlin
#

you dont need any of this to use dependencies in other projects on your pc

#

that works automatically with mvn install

sterile token
#

No

#

I didnt explain

#

I want to deploy files to web server so other friends can use them from their pcs

sullen marlin
#

yes then you need to do this

#

or just give them the source and let them compile lol

#

may be easier for small projects

sterile token
#

Yes but if we can do it automatic its better

#

because the dependency system its a simple get

#

Which do i need to use "/" or ""?

paper viper
#

i suggest to use artifactory then

#

its free repo hosting

sterile token
paper viper
#

a little limited but it does the job

sterile token
#

I know

#

But why btw

paper viper
#

like

#

jfrog artifactory

sterile token
#

No need its simple but i dont know why the things doesnt work

#

It streess me

paper viper
#

cause how are u gonna make ur friends be able to get the deps of your local server

#

Lol

sterile token
#

Im running the web server on a server machine that its in my home

#

OMG

#

I have do it

#

Really thanks md5!!!!!!!!!

lavish hemlock
#

uhh what's the command again

#

?services

undone axleBOT
lavish hemlock
#

^

#

also tbh that premise sounds sketchy

modest garnet
#

im aware however im a college student with little money and paying for a server core to be developed we all know isnt cheap xd

sterile token
sterile token
#

Any http client for files upload that you recommend¿?

mighty sparrow
#

@quaint mantle this is not devlopment related

quaint mantle
#

player.sendMessage(ComponentBuilder ("Connecting you to the lobby!").color(ChatColor.RED).create());

#

// i use kotlin

#

mention me pls if you have a solution

candid galleon
#

@quaint mantle

young knoll
#

PR has been merged, Material#getDefaultAttributeModifiers

fallow merlin
#

How do I put a position or a VarInt/Long into a ByteArrayDataOutput?

quaint mantle
#

@quaint mantle

oblique wigeon
fallow merlin
#

How do I get the occupants of a bee hive block

#

*number of occupants

compact dagger
#

could someone help me out with this

fallow merlin
compact dagger
#
@EventHandler
    public void onSsgLeftClick(PlayerInteractEvent event){
        if(event.getAction() == Action.LEFT_CLICK_AIR) {
            if(event.getItem() !=null){
                if(event.getItem().getItemMeta().equals(ItemManager.sniper.getItemMeta())){
                    if(ssgAmmo.get(event.getPlayer()) == 0 && canReload.get(event.getPlayer()) == true){
                        event.getPlayer().sendMessage("§aReloading...");
                        canReload.put(event.getPlayer(), false);
                        new BukkitRunnable(){

                            @Override
                            public void run(){
                                ssgAmmo.put(event.getPlayer(), 5);
                                event.getPlayer().sendMessage("§aReloaded!");
                                canReload.put(event.getPlayer(), true);
                            }
                        }.runTaskLater((Plugin) this,20L);
                    }
                    if(ssgAmmo.get(event.getPlayer()) != 0) {
                        Player player = event.getPlayer();
                        Arrow bullet = player.launchProjectile(Arrow.class, player.getLocation().getDirection());
                        ssgBullets.add(bullet.getEntityId());
                        bullet.setVelocity(bullet.getVelocity().multiply(10));
                        ssgAmmo.put(player, ssgAmmo.get(player) - 1);
                        player.sendMessage(ssgAmmo.get(event.getPlayer()) + "/5");
                    }
                }
            }
        }
    }```
#

my bukkit runnable

#

just isnt working

fallow merlin
waxen plinth
#

Are people ever going to stop using BukkitRunnable

#

It's so clunky

lavish hemlock
#

?scheduler

#

?scheduling

mighty sparrow
#

Whats bukkit runnable

undone axleBOT
mighty sparrow
#

Im on mobile the code is on the y axis

#

Bruh

waxen plinth
#

People gotta stop using bukkit runnable and also gotta learn early return

waxen plinth
# compact dagger ```java @EventHandler public void onSsgLeftClick(PlayerInteractEvent event){...
if (e.getAction() != Action.LEFT_CLICK_AIR || !ItemManager.sniper.isSimilar(e.getItem())) {
  return;
}
Player player = e.getPlayer();
UUID id = player.getUniqueID();
if (ssgAmmo.get(id/*Never use players as the key to a map, use their UUIDs instead*/) == 0 && canReload.get(e.getPlayer())) {
  player.sendMessage(ChatColor.GREEN + "Reloading"...);
  canReload.put(id, false);
  Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> {
    ssgAmmo.put(id, 5);
    player.sendMessage(ChatColor.GREEN + "Reloaded");
    canReload.put(id, true);
  }, 20);
  return;
}
if (ssgAmmo.get(id) <= 0) {
  return;
}
Arrow bullet = player.launchProjectile(Arrow.class, player.getLocation().getDirection());
ssgBullets.add(bullet.getEntityId());
bullet.setVelocity(bullet.getVelocity().multiply(10));
int ammo = ssgAmmo.compute(id, (k, v) -> v - 1);
player.sendMessage(ammo + "/5");```
#

This is how I would rewrite that code to be much cleaner

#

You can avoid deeply-nested if statements by returning early at the start if conditions to run are not met

#

Then you can store the player in a local variable so you don't have to write event.getPlayer() so many times

mighty sparrow
#

Exit conditions

waxen plinth
#

You should use the UUID instead of the Player object as the key to a map

#

You can pass a lambda to scheduleSyncDelayedTask which is much cleaner

#

Then you can return once that is complete

ornate frost
#

Just getting started with mongoDB. I can connect to the database just fine with my credentials but whenever I try to add object to a collection I get Caused by: com.mongodb.MongoCommandException: Command failed with error 8000 (AtlasError): 'bad auth : Authentication failed.' on server mc-shard-00-02.ncrmn.mongodb.net:27017. The full response is {"ok": 0, "errmsg": "bad auth : Authentication failed.", "code": 8000, "codeName": "AtlasError"}

waxen plinth
#

Then you can check if they don't have enough ammo to fire, in which case you return

#

Then finally you do the logic for firing

#

Much cleaner

compact dagger
#

oh

#

thanks

mighty sparrow
compact dagger
#

thats pretty neat

ornate frost
#

I know that... just cant figure out why.

waxen plinth
#

Yeah, try to keep all of that in mind when writing code

#

It makes it much cleaner and easier to maintain

ornate frost
#

Double checked my passwords and usernames. No special characters or anything like that.

#

Been researching for about an houir now haha

waxen plinth
#

Write good code, not just functional code

#

Functional is the bare minimum

mighty sparrow
#

I did mongodb as my final assignment this semester but I didnt know we could implement it in minecraft

ornate frost
#

What class are you in?

mighty sparrow
#

Computer science

ornate frost
#

Fun

mighty sparrow
#

Every language

ornate frost
#

SO

#

If my credentials are messed up and the authentication is shit

#

How come I can connect to the database

#

Just not put anything in it

#

Thats what doesn't make sense to me

mighty sparrow
#

How your connexion to your database looks like in code

ornate frost
#

Just started figuring out mongo coming from SQL. So I basically just copied the Spigot guide for using Mongo

mighty sparrow
#

Try to output your connexion string

#

For debug

ornate frost
#

I tried that but ill try again

mighty sparrow
#

"mongodb://localhost:27017“:

ornate frost
#

Oh connection string

mighty sparrow
#

Should look something like that

ornate frost
#

not credential string

#

Gotcha

#

On connect or on addTime?

wet breach
mighty sparrow
mighty sparrow
#

It says best program in the province

#

But I feel there are a lot of things missing and outdated

wet breach
# mighty sparrow Im in canada

what I mean is, computer science isn't really the ideal thing for learning computer languages. its mostly about theory not application

#

if you want application portion, that is more in the engineering side

mighty sparrow
#

Im not at the university yet but if I go yeees

#

In quebec, you must go at cegep before university so you do theory and a lil bit of both

#

Then you decide ur path

wet breach
#

not sure why in the US people think computer science = programming though I mean yes you can learn some programming but the overall subject isn't geared towards that

ornate frost
#

How do I get the connection string from the client?

#

nvm got it

mighty sparrow
#

It looks like what

#

Show me

ornate frost
#

I mean I got the method

#

loading up the server now

mighty sparrow
#

Shiiii

ornate frost
#

Love the duck pfp

#

mc-shard-00-02.ncrmn.mongodb.net:27017 on start mc-shard-00-02.ncrmn.mongodb.net:27017 on error

waxen plinth
#

I mean, as a term, "computer science" sort of lends itself more to theory than practice

#

But my college's CS program has very heavily focused on programming

#

In the US that's what computer science means

wet breach
waxen plinth
#

Though there are other colleges where the same degree are more theory oriented

wet breach
#

computer engineering requires it

#

you can't do computer engineering without knowing programming

waxen plinth
#

We really don't call it computer engineering here

split lichen
#

Does anyone know if there's a more efficient way of rendering particle images in minecraft? Any way I've tried until now, it essentially works, but it's really lagging the server out

waxen plinth
#

We call it software engineering

waxen plinth
wet breach
#

there is hardware you know o.O

waxen plinth
#

Well you can know the hardware side without much background in programming

#

Computer engineering talks about hardware much more

split lichen
waxen plinth
#

My god that's a lot of particles

#

Yeah that's not gonna be viable any way you slice it lol

#

Does look very cool though, so props

split lichen
#

holograms, as in armor stands or?

wet breach
#

these days armor stands are used for holograms

#

unlike the old days

quaint mantle
#

then what did people use back then

wet breach
quaint mantle
#

wait

#

so you're telling me

#

hologram is from nametags from mobs?

wet breach
#

Yes

quaint mantle
#

not an actual feature?

wet breach
#

well its a feature now

quaint mantle
#

thats sad

quaint mantle
#

how then

#

from mojang, not from spigot-api i mean

wet breach
#

armorstands provide it as a feature since armorstands are allowed to be invisible, the nametag is still used for the hologram

quaint mantle
#

pwahhhhhhh

split lichen
#

so how exactly would I render an image in relation to a hologram?

wet breach
#

well the downside of holograms which is counter to what you are trying to do

#

is that holograms are 2D

split lichen
wet breach
#

I suppose you could use an armor stand with a custom image o.O

#

there is already hologram plugins

split lichen
#

that would be way too small, and adding more armor stands would again lag it out

wet breach
#

not if you use fake armorstands 🙂

quaint mantle
#

packet based

#

so that lag is for players 👺

wet breach
#

anyways, how the holograms started was there was a bug with horses

#

specifically its age

#

if you set a horses age to a negative number it turned invisible all except its name tag

#

the bug was not found out by the group who worked on HoloAPI

#

however we made it popular

quaint mantle
wet breach
#

popular enough that when Mojang decide to publicly state they were going to patch it, everyone was upset

#

so that is how we got armorstands

wet breach
#

HolographicDisplays won in that it is still alive/maintained but when HoloAPI was alive and thriving

#

they had a hard time competing 🙂

#

HoloAPI as far as I know is the only plugin that allowed for touch holograms

#

that is, you can interact with the hologram to do things just by touching it in certain areas 😄

quaint mantle
#

no

#

people have it now

#

you can find on spigot

#

still maintain

wet breach
#

have what now? Touch holograms?

quaint mantle
#

yup

#

you can find it

#

it pretty new i guess

#

like 2017 or 2019 idk

wet breach
#

interesting I will have to see if it compares to what holoapi had

quaint mantle
#

and still maintain

#

i think it support down to 1.8

wet breach
#

I don't care for outdated versions

quaint mantle
#

oh btw

#

i just found this

#

still maintain somehow on dev bukkit

#

lul

#

ahh yes

#

this is what i talked about

wet breach
quaint mantle
#

wait this maybe work

wet breach
#

so HoloAPI allowed for multi-touch in a single hologram

quaint mantle
wet breach
#

so depending where a player touched on a hologram it did something different

native gale
#

I asked that in #general, but I think that here is more appropriate place

#

Okay then, so let's say I have a plugin which is aimed to be 1.16+. Should I keep API version on 1.16 or should I use the latest one. What is the best practice here?

wet breach
quaint mantle
#

because it should always compatible with 1.18

#

no changes from 1.16 - 1.18 that can broke (only the remove biomes which idk meh)

native gale
wet breach
wet breach
quaint mantle
native gale
#

The reason I ask is because recently I've seen one plugin which is 1.16+ using the 1.18 API

wet breach
native gale
#

Okay, so it means that everything is how I imagined, good to know

mighty sparrow
wet breach
#

it isn't just mine. It took 3 dev's to make it

#

DSH105, CaptainBern, and myself

#

Hawkfalcon was later added but mostly did code cleanup/style updates

mighty sparrow
#

Do you know which minecraft servers use your plugin

wet breach
#

If any, it would be any server that is 1.7

wet breach
#

plugin broke when 1.8 came out

mighty sparrow
#

Riiiiip

wet breach
#

because that is when we got armor stands I am pretty sure

#

and we got those because like I said, Mojang publicly stated they were going to patch the horse bug

mighty sparrow
#

Yes

wet breach
#

which meant no more holograms

#

everyone got upset

#

so Mojang made it so holograms stayed as a feature 😄

#

I am just happy that I was able to make a small bit of history possible 😛

#

without HoloAPI and even HolographicDisplays(they were our competitor) holograms probably would not have become popular or a thing

mighty sparrow
#

Thats kind of cool ngl. Would be a good content for minecraft youtubers

quaint mantle
#

wait did it got patch now huh?

mighty sparrow
#

Hahaha

quaint mantle
#

probably yes bit idk

wet breach
quaint mantle
mighty sparrow
#

So atm you working in sweden? @wet breach 🤣🤣

wet breach
#

No I don't work in Sweden lol

mighty sparrow
#

You wish

wet breach
mighty sparrow
#

Crazy how a bug became a feature

quaint mantle
#

i mean what did mojang add?

wet breach
#

Armor stands.

quaint mantle
#

oh

#

invisible

wet breach
#

Armorstands have a value where you can make them invisible 🙂

#

so, holograms got to stay as a feature

quaint mantle
#

so there still havent really a feature for hologram without workaround

#

okay

wet breach
#

This is also why Armorstands are an entity too

#

Oh you mean without having to use an entity

#

got it

#

yeah, nothing like that yet

#

bedrock so far has the pc version beat on that aspect