#help-archived
1 messages · Page 162 of 1
@wheat mirage no idea, but i know i had troubles getting them to not stay loaded until i did what i said above, my only guess is that the world is already initialized by the time your code runs and that then makes the call to setKeepSpawnInMemory() essentially a no op
public void setKeepSpawnInMemory(boolean keepLoaded) {
this.world.keepSpawnInMemory = keepLoaded;
BlockPosition chunkcoordinates = this.world.getSpawn();
if (keepLoaded) {
this.world.getChunkProvider().addTicket(TicketType.START, new ChunkCoordIntPair(chunkcoordinates), 11, Unit.INSTANCE);
} else {
this.world.getChunkProvider().removeTicket(TicketType.START, new ChunkCoordIntPair(chunkcoordinates), 11, Unit.INSTANCE);
}
}```
This is spigot's code
Seems like it should work at any time
I'll stick the code in my startup plugin and try again
Sec
@zealous lynx Huh, you're right. Putting it in startup leads to:
[13:38:55] [Server thread/INFO]: Loaded: 0
[13:38:55] [Server thread/INFO]: Force Loaded: 0
yee
no clue what the cause is, just stating observations.
maybe it is a bug, but it's been this way for as far back as i was making plugins almost
so it kinda feels like it's meant to be for some reason that im unaware of
This code worked for me back in 1.12
Something obviously has changed with world loading
i see, 1.13ish is when i added my spawn chunks disable option
Pinging @fleet crane, is setKeepSpawnChunksInMemory meant to work after startup?
No items can go through my portal or NPC/entities.
What configuration could disallow this? I'm a little bit confused. Entities just pass through each side without going to nether and items just bounce off the surface of the portal.
I don't think I have any plugins that could disallow this. No multiverse etc just CMI and a few other plugins, but nothing that should intervene with this.
Appreciate any help.
:( the docs site search feature keeps 404ing me
keeps putting "/undefined" in the links in the search results after "/javadocs/spigot"
Hey,
Does anyone knows how ProtocolLib sends a PacketPlayOutPlayerInfo packet with a custom gamemode?
I don't really want to depend on protocollib, but want to send a fake-spectator to other players
im gonna bitch about this again
but I guess nobody fixed the position_predicate bs
and we are stuck begging Mojang for a patch?
@wheat mirage random idea i had that probably wont work, but you can try to set keepSpawnChunksInMemory false and then iterate through all loaded chunks that would be spawn chunks and set forceLoad false also.
(probably wont make a difference but it's all i got)
Thats an interesting idea
hey folks. i was told, there is a #plugindiscussion textchannel somewhere? How do i obtain permission to ask in this channel?
I think I'll just deal with it
The woes of spigot dev
The main issue ive got now is no chunk unload events
weird
When server is stopped
Plugins unload before chunks i think
Thinking of either iterating through loaded chunks onDisable
or calling the damn chunk unload events myself
So I updated my mysql version to version 8 today and now I keep getting terrible issues with one of MY plugins. My PHP code still works. My litebans still works. My own code which uses the built in bungeecord mysql connector does not.
Has anyone else had this issue yet
Are we just... bundling our own sql connectors in with our jars now? That how we doing this?
i use the available sqlite and mysql jdbc drivers
haven't used mysql in a while though, mostly just use sqlite now
So I have a weird bug that I can't attack entities while in Survival but while in Creative I can (Even though I have no protection or anything against it)
I do have a custom damage system but that doesn't have a protection either
Gizmo_3 can I just tag you?
So I updated my mysql version to version 8 today and now I keep getting terrible issues with one of MY plugins. My PHP code still works. My litebans still works. My own code which uses the built in bungeecord mysql connector does not.
@sharp mauve whixh are the benefits to go to 8.0?
Eh nvm
The benefit is JSON_ARRAY is supported
Basically I had to upgrade so I could get better support for JSON storage types for storing big json blobs for future graph generations
(Was building some overwatch stat tracking infrastructure in a different project)
hi @cobalt yoke
Hi @sturdy oar
what are u upgrading
mysql8
Any Idea what the event is named that is called when a crossbow has been fully charged?
it consumes an arrow than
Hey,
Does anyone knows how ProtocolLib sends a PacketPlayOutPlayerInfo packet with a custom gamemode?I don't really want to depend on protocollib, but want to send a fake-spectator to other players
:LUL:
https://www.spigotmc.org/threads/guide-server-optimization⚡.283181/ Anyone know how to do this on Aternos servers? I use spigot there?
Which free server host would u recommend?
none
Bruh i dont want to pay to play with my friends
optimizing on a free server is like trying to cool your car's engine with a cup of water
Minehut is even worse than Aternos and i dont know many other free hosts
I don't want to be rude or anything, but you will only have poor and bad experiences with "free hosts"
I've tried basically all the major hosts now so I have a pretty good experience about this
Oh... 😦
what are u upgrading
@sturdy oar i upgraded succesfully to 8.0
MySQL?
Why not MariaDB
Ubuntu 20.04
MariaDB = MySql
Its just a rework of it
MariaDB is a re-work of MySQL
Will tell if MySQL 8.0 makes any difference of 5.0, but i dont think it will be noticable
In performance i mean
Did anything break?
maybe look at the db engine instead of server
innodb is slow af
if you really want speed use a non-relational db engine/system
@zealous lynx Update, chunk unload event still not working for spawn chunks even with the load: Startup.
No idea what the hell is going on]
I guess getLoadedChunks is wrong???
Losing the will to live lmfao
im not sure, i didn't think it would work though. it feels to me like as soon as the world inits it no longer cares what you tell it in regards to spawn chunk loading though
idk why it is that way, but that's how it seems to behave
I'm using load: STARTUP
As you suggested
Do you think the world is loading before that as I said earlier?
ya, but is your code running before or after the worlds init?
load: STARTUP
public void onWorldInit(WorldInitEvent e) {
e.getWorld().setKeepSpawnInMemory(false);
}```
So if yours does, don't see why mine wouldn't
(event is registered)
oh, you're doing it in the event now
I followed through your suggestion 100%
i thought you were still trying to do it onEnable
ya it should work with that code, if it doesn't then new build is borked i think.
im +7 versions behind atm, haven't ran buildtools since wednesday-ish
hmm, i have no clue what's going on, seems very odd
[14:51:46] [Server thread/INFO]: Force Loaded: 529
[14:51:50] [Server thread/INFO]: Liquake issued server command: /hub
[14:51:50] [Server thread/INFO]: Liquake lost connection: Disconnected
[14:51:51] [Server thread/INFO]: Loaded: 529
[14:51:51] [Server thread/INFO]: Force Loaded: 529
[14:51:56] [Server thread/INFO]: Loaded: 529
[14:51:56] [Server thread/INFO]: Force Loaded: 529
``` Now I'm just fucking baffled
I sent you a log with it working earlier
and nothing has changed
in my config file i have "startup" not "STARTUP", might not matter, but im running out of ideas
so im confused about what's going on
And yeah idk if mc unloads spawn chunks really really late
So they're never sent to the plugin
unless you mean you get chunk unloads, but not when the server is shutting down, in that case that makes sense i think.
[14:56:32] [Server thread/INFO]: Loaded: 552
[14:56:32] [Server thread/INFO]: Force Loaded: 552
[14:56:37] [Server thread/INFO]: Loaded: 529
[14:56:37] [Server thread/INFO]: Force Loaded: 529
[14:56:39] [Server thread/INFO]: Liquake issued server command: /hub
[14:56:39] [Server thread/INFO]: Liquake lost connection: Disconnected
[14:56:42] [Server thread/INFO]: Loaded: 529
[14:56:42] [Server thread/INFO]: Force Loaded: 529
[14:56:47] [Server thread/INFO]: Loaded: 529
[14:56:47] [Server thread/INFO]: Force Loaded: 529
What's interesting is Loaded is never different to forceloaded
because my code is wrong, fuck
But anyway
Still shouldn't have any loaded with 0 players online
@zealous lynx ```
[14:59:21] [Server thread/INFO]: Loaded: 0
[14:59:21] [Server thread/INFO]: Force Loaded: 0
[14:59:26] [Server thread/INFO]: Loaded: 0
[14:59:26] [Server thread/INFO]: Force Loaded: 0
[14:59:27] [User Authenticator #1/INFO]: UUID of player Liquake is 31678ec7-52cc-41bc-a9c6-cfc1c3308bf2
[14:59:28] [Server thread/INFO]: Liquake[/109.154.11.185:33567] logged in with entity id 12 at ([world]9.700066584688471, 76.0, -31.02017258421169)
[14:59:28] [Server thread/INFO]: Spawned 2 SpawnReason.CHUNK_LOAD
[14:59:28] [Server thread/INFO]: Spawned id 2 during org.bukkit.event.world.ChunkLoadEvent@799ecb1 at [1,1]
[14:59:31] [Server thread/INFO]: Loaded: 529
[14:59:31] [Server thread/INFO]: Force Loaded: 0
[14:59:36] [Server thread/INFO]: Loaded: 529
[14:59:36] [Server thread/INFO]: Force Loaded: 0
[14:59:39] [Server thread/INFO]: Liquake issued server command: /hub
[14:59:39] [Server thread/INFO]: Liquake lost connection: Disconnected
[14:59:41] [Server thread/INFO]: Loaded: 529
[14:59:41] [Server thread/INFO]: Force Loaded: 0
[14:59:46] [Server thread/INFO]: Loaded: 529
[14:59:46] [Server thread/INFO]: Force Loaded: 0
What's interesting is spawn chunks aren't loaded into memory until I join
Guys for some reason an Event I created Isn't being executed even though I registrered it in my Main what da heck
@wheat mirage im not sure.
@pure pasture Show your code for calling the event
Hi there. If difficulty set to easy but players still die and say it's hard. How can I fix it?
Kill all the mobs then it isnt hard ¯_(ツ)_/¯
you can modify their attributes
or modify the attributes of spawned monsters
you can also decrease the hostile mob caps
or decrease the rate that hostiles spawn, or a combination
pm.registerEvents(new Hit(), this); and pm is PluginManager of course
But the weirdest Thing is that I actually is being called when in Creative
Which does not make any sense at all
Da heck
Pls help
maybe you are cancelling it in EntityDamageEvent?
im not 100% sure, but i think EntityDamageEvent and EntityDamagedByEntityEvent use the same handlerlist
(im just going from memory, idk if what i just said is accurate)
Okay anyone got any ideas
On the very latest spigot now
setting keepSpawnChunksInMemory to false works until the chunks are loaded by a player, then the chunks will never be unloaded from there on.
Even with no players online
Once they're loaded, they refuse to unload
Only plugins I use that potentially would cause this is Citizens, VoxelSniper and WorldEdit
But I'm doubting they'd cause this exactly
No chunks are in the "ForceLoaded" list
are both entity_attack and entity_sweep caused by a player right?
K Ill rewrite the whole class
Nevermind
It isn't this class that messes everything up it's something else
And I don't know what
i don't think it's WorldEdit doing it, i have that on my test server
(v 7.2.0-beta-01)
Same version here
Still even if they did fuck with chunk unloads by cancelling
I'm listening to all events, no ignoreCancelled or anything
im buildtoolsing now
Alright, let me know what you get
I had this issue on the last version I was on anyway
Good news.... it aint my code. It's the sql server.
Anyone know of a good mysql discord now?
If you want I'll happily try a small plugin like you suggested earlier @zealous lynx
@sharp mauve Stack overflow it like the rest of us lol
if it still works for me after my build finishes ill write one up
taking a food break though so might be 20-30 min
mmmkay
How do you teleport in 1.2.5
?
To specific coords
It keeps saying no user found with this name
Is there a http api for getting a plugin by its version? (i.e., similar to Maven. )
@wheat mirage still appears to be working for me, ill write a small plugin in a bit
May be worth mentioning I changed spawn position in this world using setworldspawn cmd
and thanks @zealous lynx
I'm officially the most stupid person on earth
lol
Hey guys - how do you adust a horse's max health? Theres a setMaxHealth(double health) but its deprecated
Any ideas?
the attribute
np
Can somebody please kick me off a cliff?
And of course I'm sorry for wasting your time xD
Is there a cap to the amount of max health you can set?
actually?
I think yeah
ok ill give it a go
by default its 2048
horses health...?
Yeah but it's 1024 hearts
oh ok
the max is 2048
Maybe it's different with spigot
yes
by default the max you can set it to is 2048* is what I meant to say.
you can change that in the spigot.yml though
Right here
Gotchya
If you change the baseValue, does that change it for all horses or just that particular horse?
It's the base value of that attribute (for that specific entity). Though you should use modifiers instead
you can modify their attributes
or modify the attributes of spawned monsters
you can also decrease the hostile mob caps
or decrease the rate that hostiles spawn, or a combination
How?
Else you're conflicting with other plugins, or even vanilla
Right choco, but if you only use modifiers then if that entities base value is 8, and another is 12, and your modifier only modfies the speed by +5 for example, then it will differ per-horse
I want to keep it static
The base value will be the same by default for all entities
Which, again, is why you should use modifiers
Yes. It's a base value for a reason
Well in that case that makes it much simpler
so if you modify an attributes base value in one entity, it’d change other entities too?
Looks like I'm wrong:
protected void a(EntityAgeable entityageable, EntityHorseAbstract entityhorseabstract) {
double d0 = this.c(GenericAttributes.MAX_HEALTH) + entityageable.c(GenericAttributes.MAX_HEALTH) + (double) this.fq();
entityhorseabstract.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(d0 / 3.0D);
double d1 = this.c(GenericAttributes.JUMP_STRENGTH) + entityageable.c(GenericAttributes.JUMP_STRENGTH) + this.fr();
entityhorseabstract.getAttributeInstance(GenericAttributes.JUMP_STRENGTH).setValue(d1 / 3.0D);
double d2 = this.c(GenericAttributes.MOVEMENT_SPEED) + entityageable.c(GenericAttributes.MOVEMENT_SPEED) + this.fs();
entityhorseabstract.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(d2 / 3.0D);
}```
The base values of attributes are modified for horses
(that's the code used in EntityHorseAbstract for when a horse is bred with another)
what am I looking at
fq(), fr() and fs() being random values
So, yes, you're right. The base value is different for each horse
I'd assumed it was changed with a modifier
Thanks for checking that Choco 🙂
not much on attributes for horses specifically
Jump Strength Blocks
0.966967527085333 5.000
0.847552919762898 4.000
0.715301016726230 3.000
0.564380127487889 2.000
0.432084373616155 1.250 (player's jump height)
it has this table
it really helpful
Not necessarily what's required here. This just equates jump height to attribute values
Hey Choco I just made a BuildTools PR to add some fixes/a new flag to benefit use in CI tools, would you mind taking a look to see if I've missed anything? https://hub.spigotmc.org/stash/projects/SPIGOT/repos/buildtools/pull-requests/41/overview
@subtle blade (Sorry for the tag 😛 )
I don't much pay attention to BuildTools. That's definitely an md thing. Though the changes look good to me
Okay cool, I'll wait for him to take a look
Looks to me like it would occasionally speed up build times for those that build frequently
So yeah, I don't see why not
Yeah, I've just been trying to get my travis build system working flawlessly with NMS and making use of the cache. And these fixes would make that work really well
Am i able to post a BungeeCord fork on SpigotMC resource section?
If so, what category should it be?
I am planning to release my resource on SpigotMC because the other site im using sometimes fails the download
error trying to remove world from config minecraft
@peak glade https://github.com/Multiverse/Multiverse-Core/issues/1663 This says that another plugin is probably stopping it from deleting, your best bet is to just stop the server and delete the world folder manually.
Yo how can I make a case insensitive Map
I tried tha apache one
but it doesnt work?
Do you guys know how to do "fancy" effects with particles? Just using the spawnParticle() method doesn't really create anything cool
They just come flying out from your body in all directions
u have to do maths
for loops
Is EffectLib a standard around here?
Yo how can I make a case insensitive Map
@buoyant path what do you mean by case insenstive? like the Key of the map is case insensitive?
like prevents from putting other entries in the map that are different in case, and then can also be used to get them without having the exact case, same with contains key
No default implementations of Map in the JDK have case insensitive string keys
I dont want to be using toLowerCase because its heavy on performance
I know that apache has one, but I couldnt figure out how to use it
What's your use case? Why do you need it
Hello, getting back into MC. Haven't played since 1.7.10. I saw Sipgot seems the go to for setting up a server now a days. I installed the build tools and seem to have the basic server set up now. To install mods like biomes o plenty. Where should I place these files in the server folder?
You wouldn't
In the plugins directory
Biomes O Plenty is a mod
Im using it because its useful for commands, and configging my plugin, basically adding functionality to make different types of crates as an API for my core.
@crisp widget ,so BOP is useless then?
On a Spigot server, yeah
The Forge server is what you want to run for Forge mods
The hell is that?
NMS lmao
I remember years ago when I used to play Tekkit there was a BukkitForge fork that I used to use 😄
@subtle blade , what is the new forge servers? I went and looked at spongecraft but from what I read its not on 1.15
Forge has server files
Though if you were to run a Forge server, you can't run Bukkit nor Spigot plugins. Just so that's clear
CustomWorldServer(CraftSlimeWorld world, WorldNBTStorage nbtStorage, DimensionManager dimensionManager, World.Environment env, Convertable.ConversionSession conversionSession) throws IOException {
super(
((CraftServer)Bukkit.getServer()).getServer(),
((CraftServer)Bukkit.getServer()).getServer().executorService,
conversionSession,
null,
null,
null,
dimensionManager,
((CraftServer)Bukkit.getServer()).getServer().worldLoadListenerFactory.create(11),
new ChunkGeneratorAbstract(new WorldChunkManagerOverworld(0, true, true), 0, GeneratorSettingBase),
false,
0,
null,
false,
env,
null
);```
Here's the uh method
👀
Sure you can
Thx
@subtle blade so is it me, or does there seem to be a big split since I played last. Because before I was able to have mods and plugins at the same time. like the creeper nerf. permissions. while having BOP, Mr Crayfish mods too
In 1.7.10 there were attempts at merging the two projects such as Cauldron
Though they never succeeded beyond those versions because it's not easy to maintain. Bukkit was not designed to be ran in a non-vanilla environment
So Spigot is vanilla MC / where Forge is the mods
Correct
You could use SpongeForge as Sponge's API aims to be less vanilla-aligned, though you have to use Sponge plugins. Bukkit plugins are not supported there either
ok, I have some thinking to do... lol
Yes 🙂
mods or no mods
That is however limited to 1.12.2 👀
o/
When giving a zombie a potion effect, it doesn't have particles (I did specify partciles as true). Is this behaviour intended?
The boolean for particles at the end stands for "hideParticles"
😂
Thanks, this should be said in the docs..
100% sure it is 😛
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffect.html#<init>(org.bukkit.potion.PotionEffectType,int,int,boolean,boolean
If you ignore the end part and just read "the particle status"
Then it makes sense
But even then
it's reverse of that
Gonna PR real quick to change its name
Server console is spamming this: com.google.gson.internal.$Gson$Types.canonicalize($Gson$Types.java:111)
Its causing the server to crash
Actually, no. It's just backwards
/**
* @return whether this effect has particles or not
*/
public boolean hasParticles() {
return particles;
}```
Should that not be !particles?
Yeah
Because if it's true then they have no particles and false would give particles
Gonna test
Should that not be
!particles?
If the boolean in the constructor means hideParticles then yeah
You could get help but it is not supported
Now you see hideParticles is the correct param using the in-game command
You got an error?
By my guess you have a malfunctioning plugin
That boolean works fine for me. When it's true, particles are shown. When it's false, particles are hidden
Are you perhaps mistakenly confusing it for ambient?
someone help me fix this other guy's code ;-; this is hell please
Are you perhaps mistakenly confusing it for ambient?
Just checked, I am not
look at this shit ;-;
value[0] != 0 
hey
why problem plotsequad ?
Choco I set both ambient and particles to true
The client doesn't have particles turned off do they robert?
That's my only thought, yeah
That tells me nothing about your network tho
Let me recheck
because I tried each combination of ambient and particles and all of them worked as intended
What does the ambient boolean actually do? I've never had to use it before lmao
Makes the particles like 80% transparent
Ah fun
Run a ping to the server in cmd and see if it drops
;P
Thanks!
Zaid is the plugin actually enabling?
And do you ever get the issues with lag on the server using your computer?
If so, you should speak with the author.
help please
why ?
green
?
i dont know ?
yes please
yes red
yes
thttps://prnt.sc/tcd3yz
You'll need to ask about those issues in the PlotSquared discord Zaid since the plugin does appear to load
where is ?
My best guess now is that a plugin is malfunctioning in the lobby but not causing the TPS to drop
huh
Could be a host issue then
Is it shared hosting?
Could possibly be the world?
I'd suggest trying every possible option
hm i want discord plot ?
It's available on their Spigot page Zaid
How can I save player advancements into a List<Advancement>? I tried calling Player.getAdvancementProgress(Advancement a), but as it needs a type Advancement (interface) as an argument, I really don't know what to pass in as a parameter to get all advancements.
Bukkit.getAdvancement(), Steeric
thanks, will try that
To get a list of all advancements on the server, Bukkit#advancementIterator()
thanks!
Right, so when you're working on forks of Bukkit/CraftBukkit and you run BuildTools it obviously inserts net.minecraft.server into the source folder and then git detects these as additions. So why isn't "/src/main/java/net/minecraft/server" in the .gitignore for CraftBukkit?
because it would break BuildTools
BT needs those to be committed to patch and build 'em properly
hello, I'm currently using aternos on forge 1.16.1 but i want to move it to spigot/bukkit 1.16.1, is there a way to do it without having to reinstall it?
Funny enough, I literally asked md the same question a couple days ago
@subtle blade can be BungeeCord forks released into SpigotMC?
Never seen one spigot fork or bungee fork on Spigot
Ohhh that makes sense I guess haha, I'll just manually added them to a gitignore whilst I'm dev-ing then 😛
I think I'm okay sharing this because it's relevant:
So if you want you can try and suss that out and make a PR to BT? I can't be bothered at the moment and neither can he but it was something I'd brought up
I'm in the middle of a conversation lol
Ignored by choco bye
Is there actually no way to set player advancement progress? rip
XD
No you cannot publish a fork on the website
There is, Steeric. Advancement progress is handled by a set of criteria
Advancement#getCriteria(). The AdvancementProgress interface lets you set the criteria that have been achieved
Yeah I guess manually adding to the gitignore to clear up your client whilst you work isn't that much of a hassle although it is confusing for new devs working on the api.
Oh I agree. Would make things much easier to work with
My git client absolutely hates me when I work with BT 
Lmao 😛
so Choco, if I understood correclty, I must use player.getAdvancementProgress(Advancement a).awardCriteria(String criteria)?
Correct
great, thanks
You may do that for all available criteria in an Advancement
(because some advancements have more than one)
yeah, I'll try, let's see
Hmm, what causes makePatches.sh to detect patch changes in every class? This happened last time I was making patches but I can't remember how I fixed it/was doing wrong
Line endings
Something with Windows and Git not liking one another
I've not quite figured out a fix for it either but it's pretty annoying, yeah
Ahhhh
I wish I had my hackintosh still rather than switching back to Windows
Dev was so much nicer on that, and my MacBook isn't up to running Minecraft anymore 😄
So how am I supposed to make CraftBukkit patches whilst that's happening?
Can you target specific classes?
That was something Diamond and I were talking about. Considered making a PR to add an argument to just specify one file
Because often times you really only change one or two
Yeah, that would be helpful
So do you just have to bite the bullet and run it for every patch? D:
Oh!!
Sweet
I fixed it
Running this in the CraftBukkit repo: git config --global core.autocrlf true
Ah
Nope
Yeah - sometimes if I get lucky, I patch a file with a name earlier in the alphabet and just cancel the process after it's done LOL
Lmaooo
hello, I'm currently using aternos on forge 1.16.1 but i want to move it to spigot/bukkit 1.16.1, is there a way to do it without having to reinstall it? CaN anyone help?
GitHub client gives me this warning too:
y'all github clients are bad
Honestly I've found the new version pretty neat with it's simplicity.
I haven't really used it since like... early GH Desktop
Though at this point I'm far too invested into GitKraken. Been using it for years
I use Sublime Merge the superior product
Real Git users use the Command prompt only 😛
Hahahaha literally always
My server seems to crash when people go through end portals, is there a fix to this?
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
@subtle blade wait you just told me i was able to post forks? And now ou say its not allowed? What is the real answer? Btw i found a resource that is a .exe on spigotmc, is that allowed?
because they're not maintained by us?
standalone applications are different
Standalone apps, much like premium resources, are actually held for review
None of the plugins on spigotmc are maintained by spigotmc, that doesnt make sense
Same with forks
Hmm but its not reasonable
I think the same
We're not going to act as a platform to encourage the use of another platform. That's just nonsensical
Well, maybe it can be understandable, because if SpigotMC gets flooded by Bungee forks, normal users won't know which is the official version
at all
Imagine having full of "BungeeCord/Spigot forks" in the forum, and a new user comes to the forums and download it because he things it is the official one
y
I just want to get security patches to most of the people using spigot as possible for free
Also not saying that reviewing the code of a whole fork to see if theres malicious code inside it, is Triple work than checking a plugin
We cannot possibly support something that makes modifications to something not distributed by Spigot
Minor changes can affect a lot
Plugins arent distributed by spigot
It can be the difference between the proxy breaking or working as expected but it may or may not be as a result of your patches
Doesnt make sense
Linsa why not contrite to bungee
^ I second this
What if i reimplement the whole spigot source with a plugin? It will be the same as a fork
- Users that get to the forum can thing that a bungee fork is the original bungeecord
- Forks are triple work in terms of reviewing for malicious code
With this 2 reasons is enough to prevent them in the forum
Spigot < Paper ? 🤔
Because its a lot of changes
Holy shit. Why is it whenever someone doesn't get what they want, they think of ridiculous hypotheticals as if that's going to change our rules for you
And bungee doesnt officially support 1.7 and spigot community hates 1.8
The answer is no. That's final
Hmm its not like that, it just doesnt make sense and i have freedom of speech
That’s not very fair ^^.
Can’t he speak ? 🤔
Im not doing anything illegal, i just asked if i was able to post forks and that you can make your own plugins that are like forks recoding the entire pipeline
I said no, the answer is no. The answer has always been no
And doesnt make sense to block them
Oky
Is there a way to give feedback to the forums?
You will give bad feedback because you dont want to follow their rules? xD
@peak glade It’s Hardened Clay i think
yes i know how this block 19 ? that happen ? i have block 5 ? why ?
Yes xD
That's fine. You'll have md tell you exactly what I did
Tbf it wouldn't make any sense for Spigot to host forks of itself, and surely you'd want your own website and resources for that 😛
yes i know how this block 19 ? that happen ? i have block 5 ? why ?
Is there a simple API with which you can ask if my plugin is up to date
yes
Where?
That is a white page?
i know let me link github page
simple JSON REST API does what it says on the tin 👀
Man this makePatches.sh diff not working is really annoying me now, im trying to find a fix 😦 😄
lol if you find one, lemme know
or PR to BT, would be happy to have that available to everyone. Makes deving easier
hey
hello guys, im with spigot loooong time... well - i never had to create account, but i appreciate that community alot of stuff.
now i have a problem... i moved to "paper" aaand everytime i have more than 30 players, my TPS is running below 18.
could you please take a look and tell me, what can i do to fix my TPS?
server runs on 1.16.1
8k worldborder
i lowered spawnrates of all and denied spawnrate of squid, cod and tropical_fish, as they tend to spawn in huge ammounts.
server start file runs with flags suggested in aikar website...
machine
procesor 1x Intel Xeon E3-1220 v2
RAM 32 GB
SSD 2x 120 GB Intel/Samsung Pro
RAID Raid Soft 0/1
Łącze Łącze 1 Gb/s
java 8
https://timings.aikar.co/?id=467952e9659143c18215f14ec19c1857
what is that integer ?
again problems with advancements, how can I clear advancement progress? I tried Player.getAdvancementProgress(Advancement a).getAwardedCriteria().clear() but it caused the following exception java.lang.UnsupportedOperationException as the Player.getAdvancementProgress(Advancement a).getAwardedCriteria() is an unmodifiable collection.
Thank you I will update ass suggested, if you guys have any other suggestions please pm me 🙂
You have to #removeCriteria(), Steeric
The collection returned by getAwardedCriteria() is immutable
AdvancementProgress progress = player.getAdvancementProgress(advancement);
progress.getAwardedCritera().forEach(progress::removeCriteria);```
Sernik, you're on a fork. If you want support, ask in the appropriate server
Anyone got a clue as to how to define a ChunkGenerator for 1.16? (NMS)
So I'm trying to allow players to lock/unlock chests and doors. I'm doing this by keeping track of xyz coordinates that players have locked. Only problem is when they lock the top of a door, the bottom block of the door remains unlocked. I expect I'll have a similar problem with double chests.
How can I get the coordinates of other parts of multi-block things in the world?
I thought about just looking at the surrounding coordinates and checking if it was also a door/chest, but that could go wrong if people put multiple chests next to eachother.
HUH, Okay @subtle blade so I deleted everything inside of CraftBukkit except .git and ran BuildTools again and now makePatches.sh works 🤯 I think git config --global core.autocrlf true worked you just have to rerun BuildTools after you've set it. I'm going to do some more tests now
Hi, why my thread was closed? It was a suggestion for the forum rules and nothing was wrong with it.
hello anyone ?
https://prnt.sc/tce6rw i need this bloock creaitve 279 how that is ?
hmmm ?
Zaid you need to ask in the PlotSquared discord
believe it was called IntellectualSites or something like that
Hi, why my thread was closed? It was a suggestion for the forum rules and nothing was wrong with it.
dude... lol
1.1. They make advertisement of Spigot.
They do literally the opposite
1.2. They give new ideas and solutions for developers. ej: implementing patches from a fork in future official updates.
1.3. They help people of the community have more features.
So do pull requests to the actual software rather than splitting the community into another branch on which software remains exclusive
2.1. If you are experienced enough you can just rewrite the entire pipeline of Spigot and "inject" your own fork as a plugin.
2.2. Marking them as "unsupported by Spigot" doesn't make sense as plugins that rewrite the packet decoder can just break everything up because they basically rewrite parts of Spigot. (Like a fork does) And supporting that is technically the same as supporting forks.
This is actually the dumbest thing I've read.
Some windows applications are already allowed in the site that are little related to BungeeCord or Spigot, and if that level of applications are allowed why not allowing a fork?
Forks and standalone software are not comparable. They server two completely different tasks
md's response, as expected, pretty much summed up everything I had said earlier before you created your thread. I don't know why you expected anything different
I added a check when locking doors, since I don't have to worry about people stacking doors. How can I make sure that a block next to a chest is part of the same double chest?
Funny - implemented exactly that recently
Is there some documentation on how plugin loading works?
Thanks Choco!
Man I can't reproduce what I did but Diffing is working now, how frustrating lmao
Not really. What all do you want to know?
Well that's good! I'll give it a change too, james
he is the real choco
the other one in the photo is fake
i need a fucking huskie 😦
Well the problem is I can't get it to work in a separate BuildTools folder strange

Man I definitely want to make a PR for makePatches so that it can be run on one class, it's taking forever to Diff everything 🤔
@subtle blade Yes i asked before he published it. Anyways, i dont see a reason to prevent the debate to still be open for anyone who wants to have a chat about feedback. Thanks anyways :) i wont bother anymore.
@crisp widget I've tried working with custom generators without success :( btw i would personally recommend to organize the variables before doing anything with your code so you can read it easier and maybe will help solving issues faster.
I'm attempting to push https://github.com/Paul19988/Slime-World-Manager/tree/feature/1.16 into the land of 1.16 however it broke pretty hard because of chunk changes
(Fork of Grinderwolfs SWM)
whats the best way to get info from a set?
right now i am trying to put a button (from my menu lib) https://gyazo.com/02bfcb29fd7ac6b783a5a22b1db7fcb8 but it doesnt want to add the button
@frigid ember So you have a set <punishments> which has maps <int maybe?, button>, right?
oh wait nevermind
maybe te index you are using is the same? Can you show the output?
empty menu
lol
anyone know of some guides on how to optimize my server as I'm encountering lots of lag
Yeah
@frigid ember What is the cpu you are using?
You can send me some timings via pm and i can debunk everything for you (Or you can do it yourself) ./timings on - start ./timings paste - get link
it will show detailed performance info
I can link the guide
?optimize
oky i hope i can help you
https://gyazo.com/048842accfc02fcad864325e921647cb yea its 0...
@sturdy oar I dont think any guide would help nowadays, most of the lag is because of plugins
Sadly
@frigid ember Hmmmm thats so weird. Not even one on the map.... Hmmm maybe you arent referencing the map properly
Why this not show the right amount of players?
@Override
public void onDisable() {
int online = 0;
for (Player onlinePlayers : Bukkit.getOnlinePlayers()) {
if (onlinePlayers.isOnline()) {
online = online + Bukkit.getOnlinePlayers().size();
while (Bukkit.getOnlinePlayers().size() > 0) {
Bukkit.getOnlinePlayers().iterator().next().kickPlayer("Server shutdown.");
online = online - 1;
}
}
}
System.out.println("There are " + online + " players online.");
}
It says 0 even when im online. Does this not include the developer of the plugin?
@bright forge its going thru the constructor... https://gyazo.com/ed498046b2e0f4ed480b31e629b15515
which the method that i was providing in general was giving me 0 even tho it should say 1 since i am muted..
@sturdy oar You know, most of the servers have issues that arent even related to the internals but clunky plugins lagging everything. Even some of this cause the server to crash if spamming interaction for example.
Atleast that the most of the cases i see
Yeah that's why I don't install others people plugins
What server doesn't use essentials? You know
same here
I already removed most of third party plugins
Do i need to get the players with name?
@frigid ember Thats so weird :/ Idk how to help really
Linsa did you find an issue
Ryzen 5 3600X that's the cpu
yes
Weird its a good cpu
Maybe its 1.14.4 itself, i was never able to run it properly on a production server
Where do i ask spigot questions?
@acoustic jacinth I recommend you to make your code organized to find issues faster, you did like a weird thing. I will show you a decent way:
@Override
public void onDisable() {
int online = Bukkit.getOnlinePlayers().size();
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
onlinePlayer .kickPlayer("Server shutdown.");
}
System.out.println("There are " + online + " players online.");
}```
I think this should work
Linsa you completely removed the online variable xD
is there
haha he did something really strange with his code i couldnt understand it so i wrote that from scratch, i think he wanted to do that
Ok this works fine. Thx ^^
:D
Btw i recommend learning a java course before getting into programming because it could be confusing at first
You can tell im confused?
Yeah
I mean, the code you sent was like overcomplicated and you could do that simpler like i did in my code
doing courses before helps a lot :)
I'm interested in adding support for writing spigot plugins in Clojure. I have a POC working, but it's not ideal. One thing that's not totally clear to me about how plugin loading works is where exactly loaded plugins go. If I were to make my own plugin loader, how would I inform Spigot to use my loader? Do loaded plugins need to be registered with some higher level component?
Yeah... no. Get out of here with your weird arrows pointing somewhere stuff.
Btw do lambdas have performance improvements or just look better? I dont recommend them for starters because they can miss some stuff when starting to program (But i personally use them)
@subtle blade I always forget, after making changes to the Bukkit API and CraftBukkit I'm supposed to commit them and then run what in Spigot to pull the changes over? I ran ./applyPatches and it's pulled the API changes but the server changes haven't :?
I never bothered analyzing bytecode , but performance should not change
just looks shorter
Although CraftBukkit says it's on a Detached Head hm
Are you making a PR to Spigot?
9 times out of 10, API should be directed to Bukkit & CB
Yeah no I'm making a PR to Bukkit, I just wanted to build the Spigot to run a test plugin
How does Spigot know which pluginloaders are available?
I typically just run a CraftBukkit server, james, to eliminated all variables
[19:49:41 ERROR]: Current Thread: Server thread
[19:49:41 ERROR]: PID: 16 | Suspended: false | Native: false | State: RUNNABLE
[19:49:41 ERROR]: Stack:
[19:49:41 ERROR]: rip.kits.regen.punish.menu.PunishmentMenu.getAllPagesButtons(PunishmentMenu.java:35)
[19:49:41 ERROR]: net.frozenorb.qlib.menu.pagination.PaginatedMenu.getButtons(PaginatedMenu.java:56)
[19:49:41 ERROR]: net.frozenorb.qlib.menu.Menu.createInventory(Menu.java:41)
[19:49:41 ERROR]: net.frozenorb.qlib.menu.Menu.openMenu(Menu.java:89)
[19:49:41 ERROR]: rip.kits.regen.punish.menu.MainPunishmentMenu$1.lambda$clicked$0(MainPunishmentMenu.java:91)
[19:49:41 ERROR]: rip.kits.regen.punish.menu.MainPunishmentMenu$1$$Lambda$31/1052690658.run(Unknown Source)
[19:49:41 ERROR]: org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71)
[19:49:41 ERROR]: org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:354)
[19:49:41 ERROR]: net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:713)
[19:49:41 ERROR]: net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:285)
[19:49:41 ERROR]: net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:627)
[19:49:41 ERROR]: net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:528)
[19:49:41 ERROR]: net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628)```
@subtle blade No toxicity against version please
This has nothing to do with versions
index is just the button pos
Don't tell me what to point out lol
oh wait
User is 6 years out of date and I'm going to make that abundantly clear
1.7 is just the server
@frigid ember now i see the issue
You are creating two iterators
you need to create only one iterator
how so?
Anyone got any ideas for custom gravity in 1.16?
Iterator<> iterator = set.iterator();
With the levitation and slow falling effect I'd hope it'd be a changeable value for the client
and use hasNext() and next() on iterator
Even if you could accomplish that, the client will hate you for it
Apparently not
And yeah exactly
I want to try make the client agree
but seems impossible with no mod
set.iterator(); would be punishmnets right?
@wheat mirage My girlfriend is making a plugin that works as an api for modding without mods
Maybe it can help with that
(When its released)
I mean it works like packets to change stuff on client-side
@bright forge Yes but that isn't going to not force the client to download anything
So what's the plan?
@frigid ember Yeah
so
Get everyone to download a custom client?
Forge does the same right?
Iterator<Punishment> iterator = punishments.iterator(); ?
Yes @frigid ember
ok good.
@wheat mirage we plan to limit what you can do with the api
Ofc
Its the first thing i told her
i fixed my problem with the numbers lol
Hi there, is there any way to restrict how quickly a player moves? I've got quite a bit of tps lag and timings shows that some of it is from chunks being overloaded, likely due to people flying/ elytra'ing
I saw the 'moved-too-quicky-multiplier' but wasnt sure what to set it to..
@wicked plume Hmm i think that decreasing it detects more
I think you need to change the threshold and not the multiplier
the 'moved-wrongly-threshold'?
I will send ya another alternative via private
thank you!
I dont really remember how the moved quickly stuff worked
Or you can block elytras i think some servers did that because of that
How would I register my own PluginLoader with Spigot?
Hastebin tries to guess and gets it wrong like 75% of the time
lol
hey is there a a bug in 1.16 spigot where shulker boxes disappear?
Not to our knowledge. Can you replicate this on the latest version with no plugins?
Do you have replication steps?
one plugin, by me has nothing to do with shulkers
it's happened to me twice and another player once
i can't pin point but seems like when mining it sometimes doesn't drop?
(1) Make sure you're on the latest version (2) Do some toying around to try and pinpoint the issue / have a reliable way to reproduce it
If those conditions are met, I encourage you to create an issue on the tracker
ok, thanks

I have registered a custom PluginLoader with Bukkit via Bukkit.getServer().getPluginManager().registerInterface(ClojureLoader.class); and can verify that my getPluginFileFilters method of ClojureLoader gets called. My getPluginDescription method never gets called for a file that matches one of my file filters. Does anyone have any idea why this could happen?
I can also verify that my file matcher does, in fact, match the file I am after. I don't see why my getPluginDescription method is not getting called.
I have a repl open to a live server and can see the file matcher does match:
(let [file-name "clj-mc-thin.clj-jar"]
(map (fn [[pattern loader]]
[pattern (.find (.matcher pattern file-name))])
(read-field (Bukkit/getPluginManager)
"fileAssociations")))
=> ([#"\.jar$" false] [#"\.clj-jar$" true])
Oh, duh... I bet it's getting called too late! I'll bet SimplePluginManager's loadPlugins method has already been called. Hmm. How do I plug in early enough to register a custom PluginLoader?
Currently I have this:
public class ClojureLoaderPlugin extends JavaPlugin {
public ClojureLoaderPlugin() {
System.out.println("ctor. registering...");
Bukkit.getServer().getPluginManager().registerInterface(ClojureLoader.class);
}
@Override
public void onEnable() {
super.onEnable();
System.out.println("enable clojure plugin");
}
}
But I'm pretty sure by the time this object gets constructed, it's too late.
does anyone know an easy way to get the server's tps
Call from onLoad() but you may want to put the load order in your plugin.yml to startup
still havent found a solution
load: STARTUP iirc
Hmm. That also requires the object to be constructed, right @subtle blade ? Wouldn't that still be too late?
not using essentials
That gives a /tps
Ah oof I was confused
Perhaps the load: STARTUP is the trick
Idk
i think spigot has a /tps command built in cuz i already have /tps
i want to get the server's tps and put it in the tab list
Yes, though your object is going to have to be constructed eventually
Right. I'll bet that load property will do it. Would it be preferred to register in onLoad instead of in the ctor?
Yes
Why?
No load: STARTUP does not change anything. I'm pretty sure the call to registerInterface is still happening too late. The fact that it's executing JavaPlugin lifecycle methods means it's too late
Unless I'm missing something, there's gotta be some hook that is lower level than a plugin for this sort of stuff
does anyone know an easy way to get the server's tps
@formal arrow a plugin registering "TabObjective" seems to be not working properly
he needs to check that isnt registered before registering it again
this happens when I go to back to my hub from my survival server
ActionHealth, AsyncWorldEdit, AutoBroadcast, BungeeGuard, ClearLag, CoreProtect, dynmap, Essentials, EssentialsChat, EssentialsSpawn, FastAsyncWorldEdit, GriefPrevention, HolographicDisplays, LuckPerms, Multiverse-Core, Negativity, NoPluginsCommand, PlaceholderAPI, PlugMan, ProtocolLib, PunishmentGUI, StaffPlus, TAB, Vault, Wild, WorldEdit, WorldGuard
any ideas what one?
what does your console say
it might be async worldedit let me remove it
nope
now im confused I disabled all plugins with plugman and its still doing it
maybe its plugman o_o
help i get this
https://pastebin.com/Hktnem7W @frosty cave
New one help
@subtle blade , when a Spigot user hides his SpigotMC profile, it appears as "The requested member could not be found"?
I think so, yeah
It may also show if banned. Not sure
Because i cannot take his real spigot username to do a Find Customer in my plugin page @subtle blade
And i cannot search if he bought my plugin with his Spigot ID, right?
Well, definitely not banned so yeah, probably just a private account
Well i think that could be a nice suggestion
in the "Find Customer" button from each premium resource
The ability to search a customer by his spigot id
For those interested, I created a thread on the forums wrt my previous question (https://www.spigotmc.org/threads/registering-a-custom-pluginloader.449746/). This is very interesting. It's clearly built with extensibility in mind but I just cannot figure out how I'm supposed to hook in.
I'm also curious how it know to pick SimplePluginManager for the default plugin manager 🙂
bro I think its via version
Question: Is it possible to disable instant sleep when clicking on bed ?
No
From console.
Oh wait
That is the extent of the error isn't it.
Definitely viaversion.
User TapGG has disconnected, reason: Internal Exception: java.io.IOException: Error while write(...): Broken pipe
is the only error
I disabled all plugins except via so I could still log in and thats the message I got
Yes
Aside from the use of the section symbol in source, which you should avoid
Just use ChatColor constants (honestly doesn't matter if they're from Bukkit or BungeeChat, they'll both toString() to the same value)
whats the easiest way to figure out whats lagging a server?
Timings report
Anyone ever experienced receiving a NPE on getOfflinePlayer on a valid uuid?
Hi, do someone knows how to run a scheduler without a plugin? Im trying to run this on BungeeCord class
getScheduler().schedule(<pluginrequiredhere>, () -> {
firewallManager.tick();
}, 1, TimeUnit.SECONDS);```
Guys i made a freeze plugin
Which isn't responding
Fsr
I registered events
And made a plugin.yml
but idk what's wrong
That's the class
Hope anybody can help me
Question: Why when I go in bed to skip night there's no sleep animation ?
Something is wrong with my resource pack
It wont download in game even with the links
Does anyone know when the server field of the Bukkit class gets set?
Grepping for setServer( does not yield any results
Does anyone know if running a monecraft server on your home/main pc will download any other software besides Java 8?
how would i sort a Set?
@hardy cedar your class would need to implement CommandExecutor, and, when your plugin is enabling (onEnable), well... set it as executor of the command xd
Question: Why when I go in bed to skip night there's no sleep animation ?
@gaunt wadi what do you mean? 🤔
Leave the Enderdragon Alive..
You can Change the Y Location of where the portal is created.
NBT Explorer.
can someone help me figure out why my server is lagging
@frigid ember Are they lag spikes or is it constant lag? What plugins you got installed? How many players on average? For how long do they play? Do they have big farms? What hardware is the server running on?
Right now it's just my plugin qLib and protocol lib. Not lag spikes but the Tps will drop to 19 no one but me since it's local and I have given the server 6gb ram
Scheduled tasks running synchronously? Heavy loads on listeners?
My plugin nor does others. I run most of my task asynchronously
🤔
Tried looking at timings report?
I tried reading it
But I just can't understand it
Do you mind if I send it?
Sure I guess lol
1.7 bruh XD
Ahh
Shh
Obviously
idk man, seems pretty normal to me
Average TPS: 19.85 - Server Load: 1.14%
Must be big spikes that appear once every century, idk lol
I just don't like seeing the tps go down tbh. Never seen the tbh go down like that
I swear it happened after I added my stupid /history command
What I do find amusing is
6,757.1k world - doTickTiles_tickingChunks_tickChunk
Bruhhh
Now I don't know about you, but I could never count up to 6 almost 7 million myself
So it be a pretty big number
i count to 50
only
If you want finer detail on performance profiling, I suggest spark by Luck, I have used it before, both when plugin testing and on prod servers and it has worked wonders for me
whats spark do?
It's a performance profiler, sort of like timings, but it gives you way more detail on where exactly the culprit could be (it's up to you to analyse the data and come to conclusions anyway)
The resource page explains it better than how I would
Probably a shot in the dark, but has anyone figured out a way for Advancements to trigger a string of Spigot Commands?
Advancement events could be a good option.
declaration: package: org.bukkit.event.player, class: PlayerAdvancementDoneEvent
guess its time to learn how to code spigot plugins then? lol
I was hoping someone had found a bit of an easier way to do it
Oh you mean there is a plugin out there already?
Well, okay bit of a long story short, I had a developer who had made something similar in Skript, but I can't seem to track down where the commands correlated to the Advancement
Which is probably better reserved for something like skUnity, but I much prefer working with Spigot over Skript any day
so I wanted to know if anyone had come up with a way beforehand to reach a similar result
Skript 🤮
Tell me exactly what you want and I am sure I could code it for you.
ew!
Yeah its an ew
If it is just a simple event running a few commands then >.<
I guess to put it simply, it's to check for if an advancement was reached, then if the advancement was reached to run commands determined in a config
@warm ginkgo level.dat (I think). Of The End World.
But the difficult thing with that I'd think would be adding multiple advancements through a YAML file
You want the commands to be specific per advancement
Yeah, the original concept was on a levelling system
Since the developer departed I've been left with pieces of somewhat optimized skripts
I will look into it for you. I am on my way home so gimme 20min
thanks
What version is your server? (Hopefully 1.15+)
Absolutely 1.15.2 lol
1.7
Okei cool
1.7 best L
If its not 1.12.2, 1.7.10 is mods best
tbh i would never run a server above 1.12.2 because of performance wise
thats why 2b2t is still there. anything above will cause lag with 200 players in a single world
now hypixel the other hand has 500+ servers so it can handle it
Probably not the best channel to talk about it though lol
true
hey do u guys know of any resources i can send to ppl trying to get into coding spigot plugins, or java, or even programming in general?
Free academy until 2021, https://www.jetbrains.com/academy/
35 hours of Java, 25 hours of Kotlin, and 84 hours of Python or something
I know I asked this before, but how do you guys manage particles?
The spawnParticle method just fires them off in all directions. I want to do some moderately cool effects with them
Anyone knows a GOOD Sign Color Plugin
That transforms textx into colour instantly and u dont have to click done for it to change colours?
Pretty sure you have to click done. I could be wrong, but I believe an event has to be fired
which said event is fired when a player clicks "done"
ahng on
cna I dm you?
@subtle blade
@frigid ember there are different kinds of particle layouts or whatever that use velocity, some of them don't do it in an obvious way
i can explain more or find a link for you, if you have trouble finding a link
@zealous lynx That would be great 🙂 I can't find useful resources on this
I wouldn't have thought it'd be a goose hunt
So did .getShooter() change or is it bugged because it's returning null in all events now.
I just updated to the latest version, and now its returning null
