#help-development
1 messages Ā· Page 690 of 1
I started with 3 text boxes.
Made text box 1 and 2 auto layout (grouping 1)
Made text 3 auto layout. (grouping 2)
Selected group 1 and group 2 and made them auto layout.
Centered the group using the auto layout grid.
Changed group 1 resizing property to fill.
Then anything extra like icon and box shadow came afterwards.
Just not sure how I screwed up though š¤
wait, doesnt toVector concern direction?
No
A location as a vector is just xyz
Well with toVector that is
If you use getDirection that will involve the pitch and yaw
Any idea how can i figure out if a location is in a region? (i've a custom region object which it contains x-y-z 1 and 2)
Turn it into a bounding box
Bounding boxes have methods for that, and a bunch of other stuff
If you want I can show you how I did it via screenshare.
Yea, that would probably be easier š
Luckily I only need to do this kind of stuff once, since I can just save it and re-use it
Making me get my phone out LMAO
Life is like Hello World - you can't live without it
~ Andrut Kokosowski
the green lines are the blocks/locations the bounding box contains
also i set all of the locations
Sounds like you just need to expand your bounding box
any way to fix the problem instead of expanding?
If you pass on the correct corners to BoundingBox.of it should be fine
If not you probably need to add 1 to the x and z of the max corner
but its not unfortunately
i'm using worldguard api to get the pos1 & 2
so it should be fine
thank you for help
Worldedit had cuboidregion which should function similarly
?
What do you mean by specific color?
Glow color is defined by a Player's scoreboard team color.
Ah, thought they meant like coloured names or something like that
I am trying to decide a good database set up, I want a users table for UUID, rank, etc⦠I also need a factions table to store faction ID, faction name, faction description etcā¦. But how should I tie a user to a faction as I donāt really want to add faction to the user table since later I plan to expand to more than factions⦠but I need to be able to store which faction a player it and their faction rank
I also want to have a log of faction actions such as rename, kicked player, added players⦠but am not sure how I should design a table for that either
Have a users table, a factions table, and users-factions (this will be a many to many).
Even though each player can only be in one faction?
And whats the best way to go about a faction history log
what you want to do is store the faction id that relates to the faction table inside of the players table
then for a history you can make a faction history table that stores a foreign key to the faction
itāll be importsnt that instead of deleting a faction row (bc it will have history referencing it) you can either remove everyone from that faction and let it collect dust to persev the history, or just delete the history related to it first
I kinda want it so if a faction is deleted the log is not
I'm trying to set the item a Witch entity holds, but it's not working. The server I'm testing it on is Paper 1.12.2:
final Witch witch = (Witch) super.spawnEntity(location);
witch.getEquipment().setItemInMainHand(new ItemStack(Material.EXPERIENCE_BOTTLE));
The super.spawnEntity() method just returns an entity, which is of type Witch.
how would the log know what faction was deleted without it being stored in the database?
?whereami
wat
You're right, my bad.
That is what I am trying to figure out
Maybe I could have a flag, active or deleted for each fraction
just keep the faction toes
row
history is good
yes a for isActive
Awesome!
Any specific way I should setup the log table so I dont have to fix too much later on
factionuuid, playeruuid, action, desc?
thank you so much!
I wonder how I should store faction ids though
Basically right now I gen a random UUID and just ensure it is not currently used
But that is with config so its easier
More difficult to gen a random uid and ensure it doesnt exist within all the active/deleted factions
Maybe an id (autoi increment), factionuuid,
But then that doesnt solve the issue of overlapping uuids i guess
well mysql has an auto increment functionality
rest assured you will never witness uuid collisions tho
depending on what database your using it should all be the same
this is not guaranteed
it isn't, but the odds are infinitesimal
even with an insanely high unlikelihood itās not 100% guaranteed meaning itās not practical for production use
like yes technically if you have a 8192-bit number that is generated with guaranteed randomness eventually š¤ in a billion years the odds of two matching will be 2%
realistically it won't happen
but it misses out on that opportunity š
lol
itās uuid not guid
tho i think that is also easy to implement within mysql itself
lemme look
I think imma have log_id faction_uuid issuer_uuid target_uuid action and desc
and have issuer/target nullable
Hopefulyl this will work long term
if you are generating like 50b a sec or smth
Uuids and guids are basically the same thing
I would like to make a spigot plugin that makes a new world with just an arena in it, and the rest void (or normal world generation, doesn't really matter).
I've found some resources that show how to make Minecraft world generation yourself, but I can't seem to find anything to make like just a single structure of some sorts.
Do I just make a method that creates a new world and set the blocks one by one (seems inefficient)?
How would I approach this?
Any help would be appreciated š
Use the StructureManager to create/paste a template https://hub.spigotmc.org/javadocs/spigot/org/bukkit/structure/StructureManager.html
i use world edit for templates but whatever you want lol
i use worldedit for bigger structures (bigger than structure limit)
I'm afraid I don't understand how I could use this to make a structure for the first time
How I see it is, I can save a structure that's already stored somewhere and place it again, copy it,...
can we load worldedit created schematics using this?
I knew this existsed but I am not sure if we can actually load schematics
then use worldedit api lol
I already do, just asking
fawe ftw
You create a Structure, then #fill
then save if you want to keep it
could you maybe give me a little example code or something?
to paste one you load it, then paste
manager = Bukkit.getStructureManager();
structure = manager.createStructure();
structure.fill(location1, location2, false);
manager.saveStructure(key, structure);```
that will create an nbt file for that structure
to load and paste it's very simple
structure = manager.loadStructure(key);
structure.place(location, false, StructureRotation.NONE, Mirror.None, 0, 1, new Random());```
you only need to load it once
then you can use teh manager.getStructure
How optimized is the structure manager?
very poor
shit so I can't really use it in my Cosmos plugin
teh manager is fine, but pasting is slow. As slow as WE
I did a test using structures to paste a chunk at generation in a void. It was slow
you can always use worldedit :p
How slow
pointless unless you want to paste a MASSIVE structure and then WE will kill yoru server anyway
Like would it be a viable alternative to just using worldedit for skyblock islands
or does it take like a minute
server keep up messages as you moves pasting in chunk gen
oh yeah you could easily do islands
f-a-w-e
there is i think multithreaded version of worldedit or something
@sullen marlin Would it be fine to remove "May be null" text on methods that are annotated with @NotNull & @Nullable?
recode it in rust
what
no null - problem solved
rust supports null
I'm worried about latency though
shit I guess I should just fuck around and find out
pre load the structure and you only have the overhead of pasting
welp my knowledge of rust is really basic because I just started learning it
but it doesn't seem like it would have that many use cases
Skyblock isn;t going to be pasting new structures that often
low level multi threading
feels like most times you could use result and option
could you give an example of how null could be used there? I'm struggling to come up with a use case
when the value isnt yet initialized and you are trying to do data race for threads to initialize it
an urgent question, they took me to the team to create plugins on the server, they ask me how much Iām ready for this is the first time what fee to take once a week
or controlled memory leaking
yeye
what's the Random for
can I pass null
I don't like having randoms
the random is used if you have damage
pardon me but a month ago or so you were trying to save a horse to a file and now you're working, did you have a really good learning curve or are you still coming shit
oh welp
oh and for loot
cool low level multi threading where you need to handle memory manually in rust
I have gained skills now everything is fine more or less
Yeah I don't use loot
due to cpu and language limitations regarding multi threading
passing a seeded random you can ensure it's integrity(if used) and loot will always generate teh same each time
I wonder if there's a way to make an empty structure
or i think you would use also null pointer for one way channels
yes you can create an empty structure
yes, just save air
or you can also save structure void
which is less than air
you can manually set corners
trying to make a getDimensions() method which returns the min and max offset compared to the center of the structure
but I only have a getSize which returns a single vector
you need to try and see
if I remember the structure is corner based
ffs
yeah they are
time to hold a Vector anchor
Structure has a getSize so you can easily calculate it's center
nah I'll just use an anchor offset passed by my serializer
Can I create a structure of pre-determined size hm
well I take 500ā½/hr, you can convert that to your currency
but iirc you're also Russian
maybe by passing a hacked location where getBlock always returns air
besides, given that we are talking about business, I am 100 percent sure that there will be shit code there, so everything is fine))
you could try passing a location above build height
Usually the docs explain why though
if you're working for a foreign company, e.g. USA, then the standard fee would be much higher (because, well, pricings differ between countries)
based
ehh these are just nms wrappers
fuck
It'd actually make me save an empty version of it
I can probably do that on startup
you don;t have to save
well
you can create/use without ever saving
I'm aware
my plugin's about saving and loading structures and pasting them on a grid
There's simply no Structure#setDimensions or a way to fill it without reading blocks
and just assuming it's air
based on source views and videos
pass a location thats above build height and it's guaranteed to be air
yeah but it's still reading
ik that's why I said it's based
yes, but you always have one world and you only generate at startup
eh fuck it I can read it once and save it in the db
I sometimes don't understand English slang
you'll get there
is there any event from when a player changes his slot from the main hand?
like with his mouse wheel or the keyboard
PlayerHeldItemChangeEvent or something
PlayerChangedMainHandEvent can this be?
PlayerItemHeldEvent
is there something like spigot config api but for bungee?
im getting tired of how bad it is on bungee
im making auto update config system, but want to keep comments while adding new values
its easy to do when new values aren't inside existing sections
but inside existing sections its just straight up impossible
soo is there something like the api or some other way to solve my problem?
i use boostedyaml
oh my
never heard of it
looks promising!
thanks so much
what about this https://www.spigotmc.org/threads/how-do-i-make-a-config-file-for-my-bungee-plugin.321147/
isn't this built in?
after all bungee does use yml
like for real
š
there is a system on bungee
why not use it?
even if there was just no built in configuration system, shading and using snakeyml isnt difficult
or you could go even more simple and just use json/gson
How can I get the location of bukkit.yml, It would be useful for my debug command as settings in there quite often cause issues? As it can be moved with --bukkit-settings I cannot just look in the standard position and searching for it seams a bit jank š.
There is getBukkitConfig() in the Paper API but I cannot use the Paper API sadly :(
declaration: package: org.bukkit, interface: Server, class: Spigot
and you shouldnt
Is there an alternative in the Spigot API?
get the plugins folder location and step one out š¤
maybe you can look for -bukkit-settings
and if the arg is present use that path
otherwise the default
ah nvm it can be moved didnt read that
That was the plan but I couldn't think of how to get that option
you could also check what paper does
Good point
yeah it accesses the configuration field on CraftServer
Nothing's stopping you from using reflections to access it
what do you wanna retrieve from bukkit settings
Server server = Bukkit.getServer();
Class<?> serverClass = server.getClass();
Field configurationField = serverClass.getDeclaredField("configuration");
if(configurationField == null) {
return null;
}
configurationField.setAccessible(true);
YamlConfiguration config = (YamlConfiguration) configurationField.get(server);
lmfao
Preferably the whole file
I might just search for it after looking in the standard position
or just use reflections and move on
:(
yeah but for what purpose
is there anyone who knows how to use lightapi?
?ask
If you have a question, please just ask it. Don't look for staff or topic experts. Don't ask to ask or ask if people are awake or available. Just ask the question to the channel straight out, and wait patiently for a reply. Make sure you use the right channel regarding the topic of your question. Create a thread in case the channel is already in use!
They have an example on their product page
Import the library, add it as a depend and use it as shown in their example
im having troubles with reseting the light level back to the normal state
i know how to import a library
I don't think that's easily possible, you'd possibly have to enforce a block update, so that the light levels are being recalculated
Is it possible to remove a recipe when its crafted ?
you can easily
i.a. block.getState().update();
ye
so does this makes sense to you that it doesnt work?
I meant not easily in the context of that you cant just efficiently reevert it in their api
You mean to disable a recipe after it has been crafted once by someone?
ye
Per player or for the wholse server?
Looks good, but you may also replace the if statement with
if (oldLightLevels.remove(location) != null)
wholse server
well it does nothing, i just leave the path with light behind
altough it passes that statement
and remove the .getName()
Listen for when an item is cratfted, add the recipe to a Set, and cancel the PrepareItemCraftEvent
if a recipe of that set is crafted again.
https://github.com/BeYkeRYkt/LightAPI/blob/5.0/bukkit-common/src/main/java/ru/beykerykt/minecraft/lightapi/bukkit/api/extension/IBukkitExtension.java
I guess that you cast it to IExtension
ye but then if i want to do it for all crafts how do i do?
or i use different version...
maybe i misused some fork
its possible
Do you want to remove all recipes from the beginning?
no just when ex: "crafting table" it can no longer be crafted and so for all crafts
That is oddly specific... So if anyone crafts a Stick, then nobody can craft anything else afterwards?
are you sure i dont need to update the blocks state afterwards?
then nobody can craft sticks again
I don't think so, as you'd reset the light back to its original level
There are some flags you can pass, maybe they are useful
Listen for when an item is cratfted, add the recipe to a Set, and cancel the PrepareItemCraftEvent
if a recipe of that set is crafted again.
thx
You can just add the recipes key to the set
Also makes saving it across restarts easier
its weird, i just used the update() and it did nothing
You must set the first paramater to true to force it
It won't apply it as the material is already the same
Try a force update
I'm about 95% sure nobody in here had an issue like this before (and i haven't started working on it yet so i dont have any code to show for it), but does any of yall know if there's an uniform way to determine how semi-transparent blocks shift particle colors?
My ultimate goal here is to make particles 'visible' over longer distances by scaling them and projecting them closer to the player
Wdy visible over longer distance
still
what is the Set ?
pop out of existence
Thereās a Boolean for that
its a client side thing afaik
You can change the range of visible particles when creating them...
seriously?
I don't think you can ?
Thereās a spawnParticle method with a Boolean force
force - whether to send the particle to players within an extended range and encourage their client to render it regardless of settings
its only giving me this method
That's not spawning the particle
What is the set ?
Also, not every particle has the size parameter
Any set
string ?
HashSet would be best suited
NamespacedKey
thanks
I can't seem to find it, interestingly enough. IJ only shows me a bunch of doubles, but i dont see a bool in that list
Version?
im on latest
world.spawnParticle
well yea
Do you use Player#spawnParticle or World#spawnParticle
what the f
Hmm yeah interestingly only the world version has it
Hmm true...
Seems like a bug or something
i never used "collection", "set", "list" how can i check if the set contains the namespacedkey ?
set.contains
really?
By calling contains on the set
Ye
I've stress tested that though?
thanks
do you perhaps have some mods ?
Check the P count in f3
no
is it total particles or particle packets
cuz i send em in 4k packets saying 'spawn 10 particles' each
well the packets will still be sent, but client will clear the oldest particles
how can i get the namespaced key of the recipe
I am not gonna spoon feed you
Look into the docs
if you do recipe. any good IDE will tell you all the methods
Just looked at CraftPlayer.
Player#spawnParticle always overrides the spawn limiter for the particle packet.
This means particles sent this way should always be displayed.
What even is CraftBukkit and what is it for
Nice
on the server ?
Don't see how that would affect client
CraftBukkit is the implementation of the Bukkit api
CraftBukkit is the implementation of the Spigot API.
It acts as a bridge so that your spigot method calls actually reach the game (nms) objects.
the bridge between spigot api and minecraft
There are two things, by default particles only render within like 32 blocks, but the server can tell the client to render them further
Thereās also the hard cap of 16k particles rendering at once
Oh yeah that makes sense
The packet has a distance limit override parameter to tell the client to render the
particle regardless of distance.
Oh you mean the distance limit for particle spawning ?
I thought you meant overriding the count limit.
Would require client modification
That would be griefing, lul
I wonder, can you still spawn 10000000 particles and crash the client ?
Anybody wanna test that ? :D
that would be funny
Probably not because of the limit
The client actually patched some crash exploits recently
Depends on how the limit is implemented
Ie explosions with massive power levels
how can i cancel the event ?
(Power level is now capped to 255)
try google buddy
Set the result to null
I actually trolled a friend of mine by sending thousands of particle packets below the world to him.
His frames dropped to unplayable levels and he didnt know why he was the only one... That was within
the first week of learning spigot. Time usefully spent.
:D
Lul
Learnt packets first week of learning spigot?
Took me half a year lmao
I mean by calling Player#spawnParticle. Not using packets directly.
The first week of learning spigot I tried to understand wtf this programming language is
packets are that hard?
Understanding what packets are if you have never learned about networking or how
multiplayer games work, is really hard to get a grasp of.
Wow im just discovering all the projects from my beginning. This was week 3.
lol
It's.. not that complex
I thought i was the coolest little guy when i discoverd this
There's a way we can oversimplify it
can super be called after other operations in @Override methods?
nice
welcome to inheritance
super only has to be first in constructors
actually let me rephrase that
can you tell the method thats being ovverriden 'Execute this code, then what you're overridden with, then this code'?
yes
so
Oh wait
@Override
public void doWhatever() {
this.doSomething();
super.doWhatever();
}
but it's not any different from
So you want your overriden code to be in the middle of the original code
Half a year is an exaggeration but packets can be scary for newbies
doSomething()
doWhatever()
joe
ah i forgot about this that'd do it, thanks
actually wait no it wouldnt
thats the wrong method
well I didn't say there wasn't one
I was just saying it is ( in relation to Spigots ) bad
but that boostedyaml seems great enough for me to never touch bungees config api again
i meant if i could retain code from the method thats being overridden, not the method thats doing the overriding
xy problem
ah basically
i want to make a marker 'this method has been run'
problem being while i could easily do this with creating another method that sets that flag etc, it would break anything that depends on the class
no
what are those?
it's a pattern that acts as a sort of proxy
Don't ruin the fun
It's a weird ass pattern but
public interface StringProcessor {
String process(String input);
}
public abstract class StringDecorator implements StringProcessor {
private final StringProcessor processor;
protected StringDecorator(StringProcessor processor) {
this.processor = processor;
}
@Override
public String process(String input) {
return processor.process(input);
}
}
It's a weird ass pattern
But basically it lets you do shit like
public class FancyStringDecorator extends StringDecorator {
public FancyStringDecorator(StringProcessor processor) {
super(processor);
}
@Override
public String process(String input) {
return "Fancy" + super.process(input);
}
}
public class WackyStringDecorator extends StringDecorator {
public WackyStringDecorator(StringProcessor processor) {
super(processor);
}
@Override
public String process(String input) {
return super.process(input) + "Wacky";
}
}
And lets you somewhat control the order of things by extending the decorator class
and doing the operations before calling super
or after calling super
tbh it might not be the right pattern here
but it's an interesting pattern to keep in mind
ah i see what you mean, though that wouldn't solve my issue, I'm trying to interject code between two 'layers' of inheritance
BukkitRunnable -> SpecialRunnable -> Non-class runnable thats actually getting run
I want to, in the special runnable, set a mark in run(), though i cannot recall right now why
This looks suspiciously like a Function<String, String> to me š
not this argument again
XD
Nah both u again
we're like 2 old men bickering
youre like 19
I'm 18
not again 
yea
If you need me i'll be not here
still trying to think wtf this 2am ping was about
while people were talking about DDOSing
hey, does anyone know how to get the IP address (the one where you can connect from) in spigot?
so you can connect with it
I don't understand, Bukkit.createInventory(owner, size, title) returns an Inventory but neither that class or CraftInventory contain a title? Where is the inventory title stored?
In the InventoryView
It's weird
How do I get an InventoryView? (without player.openInventory(...))?
Idk why inventory doesn't have a get/set title
Well, it's stored in the inventory but it's not accessible via API because it doesn't make sense to
thres a method in player for that
what about a setTitle
in player?
ye
Currently to change the title of my static inventory I have to rebuild the entire thing
sadge
packts
Ahhh, ok
I can change the title of the view with the new setTitle method
u mean player.getAddress()?
but that returns the players ip
i want the server ip
Bukkit.getServer().getIp()
Bukkit.getServer().getPort()
Do you guys know the exact field the title is stored within CraftInventory?
ping ipchicken and read the html data lmfao
There's none
actually, i did that, and tested it out on a minehut server, but it was an empty string
when is it not null?
something about online mode? no clue I don't use that
if you want that you should be able to just make a call from java's internals, somehow. Worst to worst i bet theres some api around websites like canyouseeme.org that you can ping
This returns the IP from server.properties
oh
isn't that usually blank
yea
You can also go the classic way and use InetAddress
InetAddress IP = InetAddress.getLocalHost();
F
ahh good ol' InetAddress
last time I used it was when I was an intern at a school and made a shitty java class that would wipe folders and store the ip address on a .txt file
with this, you can connect to the server remotely?
You also need the port the server is running on
yea
i couldve sworn that spat out the LAN address, not the WAN
doesnt that give the machine address?
@echo basalt watch out daddy
oh shit

a literal god is coming after me

time do draw a pentagram
yeah, summon me
hes not a real god
im not that bear from spongebob
what god
see thing is youre not omnipotent so beliefs do apply to you
demons get warded off by salt
everytime I read the word spongebob this music plays in my head
https://www.youtube.com/watch?v=xILQRZ1F1OE
as a result so do you
@lost matrix
it's my favorite gym song
do you know what a mac adress is
no
Bing your question before asking it:
https://www.bing.com/
fuck bing
how can i set the result of a recipe "null" without making a new craft ?
How to convert BaseComponent to nms Component?
Probably. For your public ip you would need to do some requests.
its the thing you change to get more limited wifi at airports
its the thing you change when you get banned in fortnite
well, i need the ip with what you can connect to the server
like externally
But your public IP could be shared between devices if you are behind a NAT
people use bing?
?
just make request on some api to get wan address
https://www.ipify.org for example
Should be
event.getInventory().setResult(new ItemStack(Material.AIR));
But really, learn how to google these questions.
wait, wan address = public ip?
yes
Cancel the PrepareItemCraftEvent
Not cancellable
Thats weak
event.getInventory.setResult(null)
coll faster than he can delete
If the event is fired before the preparation then this needs to be delayed by a tick.
It's fired after
how would it be fired before
doesn't work
This sounds like it should be fired before and have a setResult() method honestly
I mean
you cant cancel this event
"Does not working" is a useless statement. Please describe what exactly is not working, what you expect it to do, and what actually happens. If you get any console errors, also ?paste the entire stacktrace.
Well if it was fired before it could just be cancellable
That as well
if it was fired before it could predict the future
How so?
fym ive done this before too
how would it know what the player places in before the player places in
or am i braindead
The event has a setResult that can be null
I dont think so
Unless we're talking about diff things
the inventory for prepareitemcraft you can get result and set to null
Idk I'm just waiting for my pizza
Its fired after the player places an item in but before the recipe is evaluated on the table.
which kind of pizza
The inventory has a setResult that can be set to null
Uhh
Not the event it self
i mean having the output item can be useful though
Pepperoni
nice
Domino's
so im braindead alright
didnt slept for 48 hours
You have the Recipe. This gives you the predicted item.
idk just feels wierd its fine the way it is
I still feel like it would be more consistent with other events if it was fired before the item
is placed in the result slot. Implementing cancellable and setResult() methods would be
really usefull here.
then just make it so if its cancelled it sets the result to null
instead of reordering things wierdly
ayy I got my food
Currently this event is fired in a weird order imo.
I dont see a reason for it being fired after the preparation
and not before. It would be so much more powerful if fired before.
You sharing?
Gimme a slice
Also yeah I agree with 7smile I don't really understand why it's fired after
well shit
idk just feels like a wierd idea why not just set result item to null
not sure about dessie but if smile DMs me his address I can get him a pizza
its not a real problem
thats rough man
on me
sorry you aren't a literal prodigy
thought you are broke
rightfully
mans cosplaying as magmaguy
also you can mess with the item
I should frame his roasts
with this
Its inconsistent with how events are usually handled. Changing the result of an event
after its effects have already been applied to the world instead of changing the outcome
by calling the events methods is always a bit hacky and indicates a design problem.
if u just have the recipe wouldnt it be signifigantly more limited
can't wait for mixins
wait are we getting those ?
They have
You have the recipe and the result that is about to be placed in the output slot
you can have mixins on spigot i think
fuck around and find out
It's called ignite
type deal
you can just add mixin library into your project lol
you want mixins until you realise half the people in #help-development are going to absolutely trash your server internals 
and then ur able to modify the result?
Yeah it's not that easy lol
Yes
allows for limitless possibilities
Just because you have the library, the server needs to actually load them
cause then thats just very similar to what we already have
unless im misunderstanding
like injecting a bunch of chunk stuff and making multi-threaded stuff
That's half the fun
limitless stupidity 
does mixins extras and mixins² also works?
paywall it
kek
probably best 
and ban those who can afford
and sell unbans
--ImNotStupidISwear
--plzdaddygimmethemixins
imagine debugging a server issue and some plugin just, yanked out half the server implementation š
:)
D:
On that note i just realized that every time we have to suggest "run it one tick later" its
probably a flaw with the API that should be resolved...
Isn't the 1 tick delay usually what makes inventory duplication possible?
yes
I can already destroy the server's internals with ASM
Mixins just saves me the effort
still waiting for the day we have dedicated minecraft server hardware
See, an entry barrier isn't the worst
dedicated lighting chip
real
so server cpus made to run java?
Yeah but the ASM approch relies on janky runtime attachment
nah we port half the stuff to jni
You can probably do some really really fast word generations by using FPGAs if you can
boil it down to a decently low level.
make a world generator using graphics cards
then some sort of encoder into .mca
"yeah bro I bought this 4090 to generate minecraft worlds"
Sounds like NFTWorlds
I mean... technically you could abuse shaders if you have a ton of parallel chunk requests.
rip half my income because of those bastards
They are making their own game
really really recent
kekekekeke
One of my customers was a designer / moderator for them
no clue about the exact job
but lost her job last week
Our master plan is centered around the following:
Modernized Game Engine - Craft a groundbreaking, Minecraft-like game engine from scratch that is built in a more performant and modern language (Rust) that resolves competitors' long-standing limitations, modernizes gameplay, and meets the evolving demands of players and creators.
Cross Compatibility - Ensure seamless transitions for players and creators with backwards compatibility for Minecraft's network protocols, allowing play compatibility with legacy Minecraft servers while using none of their assets or code.
Free, Everywhere - Deliver an unparalleled, free-to-play, cross-platform experience on all devices, including web browsers.
Support Creators - Empower content creators by offering them flexible monetization policies, state-of-the-art tools, and a unified player ecosystem. All of which is governed and directed for decision and feature development through creator-led governance.
Leverage Competitor Shortcomings - Captivate players and content creators with enhanced quality of life offerings, long-awaited features that competitors have failed to provide, and superior content.
It'll be in beta this year
Trust me
delivering today
Also hytopia is a legend of zelda term
just for you my friend
Wonder if nintento will nuke them
That sounds legit like something you'd find on a sketchy gofundme or smth
šØ 2023 HYTOPIA Update Video šØ
We believe @HYTOPIAgg can become one of the largest games/game platforms in the world
The video explains how, why, & more
If you know of @HYTOPIAgg, or just discovered it.. This video is a MUST watch
Give your thoughts in the repliesš
$TOPIA
511
246
you know it's legit when their webcam is in the corner
and they're a middle-aged dad with no programming experience
Needs a bandicam logo
They go on to talk about all the hate on NFTS
either the most ergonomic office chair or a 5$ gaming chair
Wait... this makes me wonder about something else.
What happened to Hytale?
being worked on by riot
they're rewriting everything in c++
ditching all the java code
including server-sided stuff
What's the you wanted to use your java knowlege to make addons?
No fuck you you get LUA
Writing plugins must be really fun then.
The will probably throw some scripting language like lua at us.
probably
apparently it's in the testing & bugfixing stage
Lol
The keys steps to making a good minecraft competitor
- Build hype 10 years too early with a teaser video
- Promise easy server modification with java
- Switch it all to C++
They need to provide absolutely outstanding creator tools in order to
come close to minecraft...
In this world it is not possible to create a worthy minecraft competitor

Imean... ah shit
Somethings gonna happen and poof

Or something already happened
Yeah, that will force mojang to do good
I WANT MY DATA DRIVEN BLOCKS DAMIT
I want data driven UIs. Data driven mobs. Everything.
They could do it. But what do we get? Mobs that sniff some flowers.
If I don't see data driven blocks by 1.22 I am going to sink sweden like atlantis
Lol
understandable
3d plotting of mob AI when
Hey don't disrespect the sniffy boi
minecraft speedrunners been plotting enderdragon positioning for years
Hmm
Prolly with a third party tool
They have to please all the 12 year olds to keep playing Minecraft so our development time isn't wasted!
pretty sure you can make it work with a plugin
Have you heard of the server velocity based using a certain dragon hitbox arrow oneshotting thingy?
yes
railguns in minecraft are dumb lol
ilmango made a wither farm out of it
tnt + arrow = 1 wither / 10 seconds
You make an arrow freak out and go hyperspeed and then deliver it to the dragons forehead
It was like there is a hitbox of the dragon that gives insane server velocity, but doesn't move the player unless they take damage and when shootng an arrow with that velocity it can oneshot the dragon
yea
I wonder if that counts as a glitch or just taking advantage of expected behaviour
There's a single pixel in one of the ender dragon's hitboxes that accelerates the player with so much momentum that firing an arrow at it, at the right time, causes the dragon to instantly die
advantage
It's not a bug it's a feature
Exactly that
Arrow damage is based on movement speed
And arrows are "critical" if the bow is fully drawn
I've seen that in code
their velocity is also based on just a vector multiplied by the bow pull percentage
You can make all arrows go at full speed by multiplying their initial velocity by 1/pullPercentage
Tbh the code was kinda confusing, but there definitely was something about when the bow is pulled for longer than a certain time the arrow is critical or some shit like that
you dont want to see my crit check code lol
you dont want to see my crit check code lol

Ooh well ya guys can look at this shit then
Wouldn't recommend it to people with heart problems tho
no clue why half your plugins don't follow the principle of encapsulation
but eh not my problem
Do I even have plugins on my github?
I usually use it to syncronize my progress in between my devices lol
yes
I usually use gdrive
but my ideaprojects folder is like
30gb
and I can't bother paying 2ā¬/mo to have 10bytes/sec read speed
private fields with getters n setters
And where I don't follow stuff? Yk I gotta learn how it's done correctly
how do you feel about a public static field
i raise you

My favourite bois
ive tried getting the public ip of the minehut server, but i cant connect with it
isnt minehut down for a while now?
did you add the port
add a syncronized
is there maybe some api?
As long as it's final too
no 
i like public static HashMap

yall are insane but that might just be perspective considering i havent slept for the past 24 hours
public static final Map<Map<Map<Map<Map<NavigableMap<Map<Map<Material, Double>>>>>>>> thoguhts
ah fuck i just remembered i did something similar once
ive got no leg to stand on here
awkward....
missing a few commas
How to get an Inventory by its id? https://wiki.vg/Protocol#Open_Screen
NMS
from which class?
Heck if I know
you should
funny thing actually
the compiler cant handle multiple layer maps or distinguish them
any Map<K,V> no matter what the V is is equal
so a Map<UUID, Player> as parameter is the same signature as a Map<UUID, long>
Welcome to type erasure
bleh
tho not sure how it would've worked with the libs
like maps and arrays that were already a thing
not true
u have reifiable and non reifiable generics
really? it can handle that now?
well no but like, its not the the types necessarily are erased
its just because they (in most cases) are gonna get erased that java does not allow this
for instance new HashMap<String,UUID>(){}
when reified in java
is this why i see gson, typetoken to be loaded like this for the types?
yes
hey conclube (formerly conclure) doing this <link> stops the discord imbed
also thanks for said link
yea ik, just too lazy :>
WeakHashMap 
:P
every type token is basically its own anonymous subclass of a type token where type params have been passed
yeah its pretty nice java has that, altho I wish they had SoftHashMap and a ConcurentWeakHashMap
Its like
public class SomeSpecificClass extends Map<String, Integer>
But its an anonymous class instead.
^
do you know preformence of weakhashmap to hashmap?
performance?
sped
there's really no significant performance changes, just implementation changes afaik
since it just wraps entries with a weak reference
yeah, well you'd have some significant problems with a weak concurrent hash map like proper atomicity
you can always make key and value a weak reference
myea well, testing a weak concurrent hash map would be painful, concurrent hash map tests looked painful last time I read through that
lol
best cache lib+
Ik guava has a MapMaker with ::weakValues() and ::concurrency() but I highly highly doubt that works as expected in a high concurrent environment
i like using just WeakHashMap lol
HashMap is bad becuz yes
damn, I see how we do things
Why?
becuz yes
Dont
Use a TreeSet instead
well for concurrency you pretty much would use that
i never heard of skip list tho
?library
or lock if the set isn't exposed to large amounts of concurrent mutations
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
Well, yeah. But there are only very very few edge cases where you need a concurrent sorted set without
external synchronization
indeed
bleh, any article around explaining how to build a lib?
what else i could use for sorted set hmm
TreeSet
Elements need to implement Comparable or you pass a Comparator to the TreeSet on creation
i have them comparable, i need it for priority lol
i had my own implementation but it was kinda messy
yeah you can define prioritization with help of comparable api
What operations do you need? Depend on that there are other sorted data structures which would fit you best.
i just want to add a subscriber to handler which sorts it by the priority, the highest priority is the first and the lowest is the last
Not sure if i understood that correctly but it sounds like a job for a PriorityQueue
i dont understand priority queue
hi, is there a plugin or something that lets you optain the real minecraft server ip?
because just using the public ip doesnt really work sometimes
blud wants minehut's ip
just invert the comparator
i really dont understand how minehut works
@wet breach p sure you had some knowledge of how the network is setup
The new java collection interfaces will make this so much easier
i used minehut and i was making some of the most popular servers on minehut lol
but after some changes and becuz i got a server from bisecthosting for free
it is useless for me
yeah
then thats good, i mean, i dont pay for hosting my server
however minehut requires paying for stuff and i hate it for that lol
isnt there some minehut thing?
before it was great thing
everytime you log into a minehut instance it goes through one of their proxies
for minehut
They did some docker container wacky stuff
dk what that is
but frosty's the one knowing details
oh athernos type deal
yea
yeah but there's a hub
its basically aternos on crack
also im a network engineer on a network server so i just manage shit on bigger server lol
it is better than aternos, you can add own plugins and i think own engines
what's the problem with localhost
other than the ability to blow up your machine with 60k packets / second and not noticing the problem
i use dev env to test stuff lol
well, i want to test out how my plugin would work for others that probably use a host
maybe they only have like 8gb of ram
ram is kinda cheap ngl
it is
Just use a response service like httpbin.org
