#help-archived
1 messages Β· Page 80 of 1
lol
just use a yaml validator
i like hocon, json, and properties files
other than that, everything is a nice key : value
you cant have it compact?
I only learned that part with Json because I was curious in how you would know how many arrays an array has, and the answer was you don't and you can't know. So you just have to create a method that keeps looping until it encounters no more arrays XD
i think that plugin.yml should instead be plugin.json
well you did
I mean plugin.yml seems more fair, less words and symbols
we are in the #help-archived channel after all
touchΓ© @keen compass
i don't need help, i'm just here to bitch about yaml
I bet everyone would change focus to the ones who need supports once they arrive
usually that is the case
It should be
yaml: Hold my misplaced space
@EventHandler
public void onMount(EntityMountEvent e) {
Entity getent = e.getEntity();
EntityType typeent = getent.getType();
if(typeent.equals(EntityType.HORSE)) {
e.setCancelled(true);
}
}
@EventHandler
public void onMount(EntityInteractEvent e) {
Entity getent = e.getEntity();
EntityType typeent = getent.getType();
if(typeent.equals(EntityType.HORSE)) {
e.setCancelled(true);
}
}``` any idea why this isnt working i know its probably stupid and my variables are also probably very bad xD
what is it not doing?
.equals()
Constants / enum elements should be used with a reference comparison. EntityType == EntityType
i always get confused with those smh
one is for content one is for reference
it should be
(typeent.getType() == EntityType.HORSE);
Ok guys, what about AXON?
https://intellimath.bitbucket.io/axon/
Never used it
me neither
@keen compass wouldnt that be redundant as
typeent = getent.getType()
i haven't had an entity mount event in 2 months
@hallow surge I didn't look at it closely, essentially just get the type of entity compare it to the Constant
What about JBON
Is that because of Covid, Trapped?
lmao
Y2K no
yes
should probably look up the propper uses of == versus .equals
Hmmm is it possible to write a plugin which supports plugins based on .json files instead of .yml?
Since EntityType.HORSE is a fixed one
silly question, but I'm not 100% sure whats possible on the fly with spigot/bukkit/mc
Like a core plugin? @naive goblet
Yeah
I am sure you probably could support .json files. In fact you could just depend on SnakeYamlEngine instead which has the 1.2 Spec of YAML that supports JSON objects
load: STARTUP
mom said "yo room is dirty, <clinit>." but then i replied, "cmon, it's good enough, <init>?"
I mean if your plugin is the core it could manipulate most stuff in the server
resign
ok goodbye
I'm curios acutally
why
useless
I'm bored
@timber barn the entire plugin loading mechanism is an implementation detail, so good luck
yes indeed
if ((!(((typeent == typeent)))))
lol
what
Not EntityType.HORSE == typeent
da fuq
you should make a non-recursive recursive loop @naive goblet
Heβll get around to it someday
Always =}
outer: {
slightlyInnerButMostlyOuter: {
primarilyInnerButNotQuite: {
fullyInnerAndNoOuter: {
break outer;
}
}
}
}
```my plugin is supposed to do great things, please leave feedback thank you goodbye.
yes that is valid java
and yes it is exciting
How is a core plugin different from a 'normal' plugin?
there is no difference
No diff Zahl
what is a core plugin?
It does number crunches?
But it's what the project is aimed to be that determines
a plugin is a plugin
Never heard of a "core plugin"
I'd a faction plugin is pretty core
if it has extends JavaPlugin it's just like the rest of us
a core plugin is something that is designed to be depended on, like an API
implements IPluginJava
However most core plugins are not designed properly
Since most of them extend JavaPlugin instead of PluginBase
@keen compass thx for the help π already fixed it before you said that
wait a plugin can extend something that isn't JavaPlugin?
yes
Priority of onEnable and onLoad is higher than that of plugins that arenβt core?
wat
You can extend PluginBase if it is a lib and the server will load it
that's a little weird
but it won't treat it like a normal plugin though
Ah yeah
a library should be shaded or found in the module path
Never seen anyone do it though (plugin base)
that is gross
why would you extend PluginBase
Soo.. for example, is PlaceholderAPI a "core" plugin?
Not really
What is a core plugin?
so that your lib can be in the same directory as the plugin depending on it without the server complaining about it
I mean it has an API
Most of my plugins have an API
but would say it's softcore
That what frost described @marsh nova
don't ping please, it makes the message harder to read
@keen compass i don't understand
if you extend PluginBase you don't need plugin.yml too if I recall
Will not happen again
oh my
No lol
Anyways, its for the purpose that your API or library can exist in the same directory as the plugins needing it, and your plugin does things with the server API. To do things with the server API the server needs to load it
I think it just loads the plugin into memory
when the class is loaded from the classloader
then it can check if it extends PluginBase
right?
So the classes are visible
^
Forstalf my code still doesnt seem to work? getting no errors this is really odd
@EventHandler
public void onMount(EntityMountEvent e) {
Entity getent = e.getEntity();
EntityType typeent = getent.getType();
if(typeent.equals(EntityType.HORSE)) {
e.setCancelled(true);
}
}
@EventHandler
public void onMount(EntityInteractEvent e) {
Entity getent = e.getEntity();
EntityType typeent = getent.getType();
if(typeent == EntityType.HORSE) {
e.setCancelled(true);
}
}```
yeah but it cant do anything until the main class is loaded
im sure protocollib doesn't need to do anything for initialization, right?
I think it has to
libs that extend PluginBase are not supposed to do things on their own. They are merely there to do things when plugins need them to, like an API. But having the server load your lib gives the advantage that you can make use of things in the server API as well.
Anyways, its for the purpose that your API or library can exist in the same directory as the plugins needing it, and your plugin does things with the server API. To do things with the server API the server needs to load it
I still don't understand
how very dare you disable horses
lmao
now i get it
Island well extending PluginBase would basically load the classes into memory so when other plugins can find the classes it doesnt throw an Exception
its preventing a dupe
not really a wrong way to do it
so i mean
@naive goblet that's the purpose of plugin.yml
If the server never loaded your lib, you couldn't use the server API in your lib
huh
for your own plugin only
or it would need to do some hacky reflection
so Frostalf, then why is it improper to do extends JavaPlugin for a lib
Anyways, most people don't know how to use PluginBase anyways so its fine. Because there is things that are missing that you need to handle yourself that are present in JavaPlugin
hence why most go with JavaPlugin
but if your plugin is truly an API and doesn't do things on its own, it should extend PluginBase
Well if its a plugin and and an api no. But yeah if it contains lib classes yeah
why not JavaPlugin
... how about providing neither PluginBase nor JavaPlugin and being a true library GASP
It's not needed
but it's not wrong
Because extending PluginBase allows for the lib to exist in the plugins directory and all the plugins that depend on it can use it as well as it doesn't screw up shading.
^
so does JavaPlugin?
wait what are you trying to shade
I am not trying to shade anything in. I am merely explaining that if your plugin doesn't do anything on its own and is a library or api, it should be extending PluginBase and not JavaPlugin
wdym screw up shading
the version of a library your plugin depends on should be shaded and relocated
Frostalf it still needs to be declared in plugin yaml ?
Because the class that extends JavaPlugin gets initialized meaning there is things that are needed that won't happen if you do shading
PluginBase doesn't require plugin.yml if I remember correctly
Now it makes even more sense
it doesnt
It would be unecessary to load a plugin if it onle has classes that is needed for other plugins. So PluginBase would be the ultimate thing as the project then only needs to have the lib classes loaded.
ok
Including we dont have to shade it.
PluginBase isn't for normal plugins, as the only thing that happens if you extend that is your classes get loaded onto the classpath. But you need your library to get loaded on the Classpath if it makes use of the Server API otherwise you end up with NoClassDef exception since your library can't see it.
Just adding it as a dependency
I mean eventually it is but it's primarily made for simplifying stuff ig
@crimson cairn If I recall, maven shading wasn't always a thing
if you use anything bukkit-related you need JavaPlugin...
so before maven shading was popular, you needed a way to get your library on the class path π
...and even without extending PluginBase you can shade librairies in your Plugin jar without issue
Before maven shading, you had... "Extract dependency in project jar" from intellij/eclipse/whatever π
@sick citrus you can use everything in the Server API from PluginBase just fyi don't need JavaPlugin for that, just that PluginBase was created for true libraries or API's that don't need to be initialized on the start of the server.
why dont they document this and make it easily accessible
Have to remember, the API is quite old. And while we have things that make our lives easier in the realms of Java development they didn't always exist either.
It seems to be quite limited in usecases anyway
I can't think of any of my plugins (even library ones) that could be turned into PluginBase
Well already stated the advantages of PluginBase over JavaPlugin and where it makes sense to use PluginBase. I also stated why JavaPlugin screws up shading in some cases as well.
Good to know it exists tho π
Yeah not many people know it is there, guess I should add a wiki page for it
as i said
or see if one can be created
there needs to be documentation
Well there is not much to document for it other then just describing when it should be used and the advantages of using it and disadvantages of it
cause people go out and ask questions
so anything that has commands or listeners is out of the picture
when there isn't really clear documentation
and then they get harassed and treated like an idiot
lmao
like
"how do you NOT know about the most simple stuff"
im sorry, where's the documentation?
oh well I don't expect everyone to know everything
I am not a fan of treating people like that
"it's right here idiot!"
and then it's really bare bones written by a 13 y/o and incoherent
It's in the javadocs isn't it ? π
only reason I know about it is because I have been around as long as bukkit has π
makes me think of maven
frost is bedrock here
i feel bad for people who are just starting maven
yes Weby it is, but if you look at the javadocs for it, there isn't much that is described
like, if you're new, you wouldn't have an idea what maven does
and by looking at their main website, it doesn't really help either
Maven's great tho
that's if you understand what it does, though
I agree @crimson cairn they could do better on their documentation
So "PluginBase" : Extend this class if your plugin is not a javaplugin.
JavaPlugin : Represents a Java Plugin.
most basic description ever.
i hate when these people dont explain things in laymans terms
holy crap file sending is slow
it's like they expect beginners to already have all this prior-knowledge
The thing though is that it doesn't describe the differences @sick citrus
and then going on youtube doesn't help either
Just don't be a beginner, duh.
exactly
Lol frostalf, I know
exactly
To be honest
I interpreted this as "use this if you use another language than Java for your plugins"
lol
last time I saw it...
Also, my Player class is not a JavaPlugin, should it extend pluginBase ?
π
maybe I should start making youtube videos to talk about the API
Yeah
yeah create minecraft
The one thing that was absolutely missing when I started doing plugins was "How does bukkit and your plugin communicate", in leyman's term.
BukkitRunnables the scheduler, the Player interface, the Entity interface, other utils
LIke what methods does bukkit call when something happens
well, all you have online at the moment @frigid ember is forum staff
jeez
I have a channel on spigot
Does anyone still use the scheduler ?
Did I hear BukkitRunnable
cause a lot of these youtube videos just do
"alright we're making a plugin that spams arrows out of your face, now you'll need to type this and this and this...."
Runnables are just perfect
sorry bukkitrunnable is outdated
@sick citrus plenty of plugins make use of the scheduler lol
BukkitRunnable is ewwww
but you get the idea
yeah
but yea, a lot of these videos don't really go over stuff in the api
Runnable or BukkitTask sure but BukkitRunnable != usefulness
and you simply dont learn
im curious, which plugin? @frigid ember
Alright, I will start on making some videos that goes over the API and some of the quirks that happens as well in regards to doing some things π
and then you get low quality crap on spigotmc
@naive goblet BukkitTask is just a scheduled BukkitRunnable...
thanks frost
have a playlist
Still better
A task is what you get when you "run" a runnable.
yeah some of them tutorial videos are not very good quality
about the most you can do with those is just copy what they did
BukkitTask can fully replace BukkitRunnable and even better.
something that is absolutely definitely missing is a video about the change from data id to blockdata
like it's still a proper mess in my head about all those changes
Ah, I can go over that
yeah just go over the API
It used to be very easy
and then make little quick demonstration plugins along the way
BukkitScheduler#runTaskLater(Consumer<BukkitTask>)
BukkitScheduler#runTaskLater(Runnable)
I am not a fan that ID's were deprecated, but I can see why they were though
iirc BukkitRunnable is even deprecated there
I mean for Mojang it solved a lot of problems for them
ID's can only go so high before you will end up needing 2 id's
and that just goes from something simple to twice as hard
long
not everything in Java is backed by longs though
The best thing would to maybe use executor services
for instance, array's and hashmaps have a limitation in how large they can be because they are backed by an Integer and not long
FatDemical
looks better with the gold
ye...
gold?
ok then, keep your secrets
It would be nice if Oracle would update the Java JVM to move things to be backed by longs instead of ints though
it's the ewwgreen
I mean for Mojang it solved a lot of problems for them
@keen compass Yeah definitely.
But it broke creative resourcepacks forever, and I'm still angry about that.
Don't worry, Mojang killed my beloved API because of 1.8 π¦
And WHY THE FUCK do we still not have an easy-to-use NBT api in spigot ?
lol
And why the heck can't we just settle on having resource-packs reading NBT tags ? Like "resourcepack-id: xxx, resourcepack-variant: yyy"
You got a point ngl
if you have more tasks than Integer.MAX_VALUE, something is wrong
if you have more tasks than Integer.MAX_VALUE - Integer.MIN_VALUE, something is really wrong
π
with your JVM
so task IDs being int is not a problem
lets test it out
If I had to guess I'd say they were removed because it's too similar to a magic value
but I never had a problem with them being ints
I'm not against magic values as long as they're documented
...and obviously if they don't change
Player#damage(Double.MAX_VALUE)
magic values are not always bad
I dislike when something gets deprecated becase "magic value" lol
and then no alternative is given
Yeah but I guess mercy is a thing
not everything can be coded to not have a magic value somewhere
Well, if I do youtube videos, video quality may not be so great as well as I don't have a decent setup for doing video processing either lol
quality as in HD quality not quality as in the video substance lmao
I mean you got a yt channel?
Well, some have clearly approved of me making some youtube videos that basically goes over the API and some of its less documented things. Such as the discussion earlier where some didn't know about PluginBase lol
i feel like i'm going crazy but wasn't there an event that you could set the location of a player on join? π€
I dislike when something gets deprecated becase "magic value" lol
and then no alternative is given
MaterialData was a decent API to try and hide those magic values but man was it ever incomplete
@EventHandler
public void onMount(EntityMountEvent e) {
Entity getent = e.getEntity();
if(getent.getType() == EntityType.HORSE) {
e.setCancelled(true);
}``` i must be so stupid i dont get this am i registering the event wrong in my main class or something
can somebody point out what's wrong with this code? it just doesn't show anything
Objective hp = e.getPlayer().getScoreboard().getObjective("skylist_hp");
if (hp == null)
hp = e.getPlayer().getScoreboard().registerNewObjective("skylist_hp", "health");
hp.setDisplayName("\u00a74\u2764");//a red heart
hp.setDisplaySlot(DisplaySlot.BELOW_NAME);
did u set the sb for the player?
do I have to re set it after the modifications?
Hey Im having an issue with PersistentDataContainers... I can't seem to retrieve integers that I'm trying to store...
WIll do, just have to put them in a paste bin
almost as bad as my plugin
LOL
bot abuse PepeHands

?paste
hmmmm
I think Cafebabe likes to mess with Choco
?jd
not that slow?
@hallow surge you are testing with spigot right and not CB?
it could be because of the API rate limits for the bot being slow earlier
messages posted count towards that limit and for bots, messages are lesser priority
yeah
I'm having an issue with PersistentDataContainers, I can get a string but I can't retrieve anything else (Doubles, integers). I did some debugging and it seems as if it is setting Doubles and integers.
ItemUtils Class: https://paste.md-5.net/qipuxoveve.java
Setting: new ItemUtils(jewel).addJewelKey().addIdKey(id).addRarityKey(pickaxeJewels.getConfig().getString(path + "rarity")).addSuccessKey(success) .addMultiplierKey(pickaxeJewels.getConfig().getDouble(path + "multiplier")). addMinPickaxeLevelKey(pickaxeJewels.getConfig().getInt(path + "min-pickaxe-level")).addUJIDKey(ujid).addDiscoveredKey("false");
Getting: ```ItemStack item = e.getCurrentItem();
ItemMeta itemMeta = item.getItemMeta();
PersistentDataContainer container = itemMeta.getPersistentDataContainer();
System.out.print(container.get(ItemUtils.DISCOVERED_KEY, PersistentDataType.STRING));
System.out.print(container.get(ItemUtils.MULTIPLIER_KEY, PersistentDataType.DOUBLE));```
@keen compass yes im testing with spigot
just making sure because those events are spigot only
shouldnt that code work tho π am i registering an event wrong xD
could you send a screenshot/link to the code where the method is being registered?
also send your full method for handling that event
@hallow surge I am not particularly sure why it isn't firing. It should be registered just like any other event
unless your code for that is incorrect? I guess go over the basics to ensure nothing is wrong
like check you are implementing listener, check that you are indeed registering the event in onEnable()
But if you want us to check, send the code as per usual
Hi can anyone point me in the direction for the best quest plugin for my server thx in advance
Hey guys, can someone help me solve this https://www.spigotmc.org/threads/map-zooming-help.438322/#post-3805712
you need to add another render @frigid ember or replace the one that is there
maps can have more then one renderer
Best way, is to create 4 renderers to handle each of the zoom levels
How do I ignore the teleport from Player has moved too quickly
@keen compass so If I clear it like this? This is what Im doing currently
final WorldMap worldMap = (WorldMap) MinecraftServer.getServer().worlds.get(0).worldMaps.get(WorldMap.class,
"map_" + view.getId());
view.getRenderers().clear();
view.addRenderer(new Render(worldMap));
Yes, .clear() should remove the render
Thats what I'm doing but it's not working
hmmm I will have to look at the api
been a while since I messed with maps
last time I really messed with them was like 1.7/1.8 when it suddenly became popular to make map art
XD
ah right, then I am not going to be much help then. I only have 1.15 api at the moment
im getting a unexpected packet error with bungeecord
but later tonight I will get 1.8 api to see what needs to be done
@frigid ember can you paste the error at the following link
?paste
how do u use a engnitmica4 with bungeecord
or does bungeecord not do modded servers
bungeecord does not do modded servers
why is that
because mods work differently then plugins do
bungee supports modded backend servers though, no?
Y
Ive had pixelmon behind bungee
Yeah that works iirc
Although it's not usually recommend , you can do it
But you need waterfall then?
any opinions on CMI?
Bad
I actually made a plugin working as a mod and plugin and it was little trickier with all the abstraction and encapsulation I had to do
Good
y
Just use reflecfion
You can get the features for free but it surely gives you a vary of good features and I believe the code is better there iirc
essentials but paid?
βJust use reflectionβ
have no idea what CMI is
It's not even open source
Spigot is a an abstraction
Just decompile and look for yourself
yeah but performance wise
pretty much a $15 essentials with database support?
decompiled code != source code
Trollzer whatβs your point?
ok
loid yes you can still see how itβs built up or what?
It probably is obfuscated
Sure but itβs not gonna be the same
Sure it is but we can still find if it uses static wrong etc
wheres sponge.jar
From Sponge website let me guess
@frigid ember sponge is an entirely different implementation, they have a website
Still donβt know if the compiler optimized shitty stuff away
Well, I mean Essentials code ainβt a beautiful look directly so the chance of CMI being better isnβt zero
yeah ik but you canβt be sure
I was generalizing Essentials and the X ver?
yeah they're not the same
loid no but Iβd certainly think that
EssentialsX is largely the same codebase tho iirc
^
Generally the java compiler will do little in the way of optimizations unless it is told to
afaik itβs just a fork
that is why there is JIT
JIT is cool
as long as it has the information it needs to do what it needs to
which if you told the java compiler to optimize something, JIT can't work like it needs to
so, its like a catch 22 with that lmao. Either you optimize using the compiler and hope that your optimization works on all platforms or let the JIT handle it.
in most cases JIT will do a better job then you can since it knows the target platform
either way decompiled code can be quite a lot different than original
jit is jni?
just in time compilation
@forest cobalt depends, in most cases the majority of the code will not be all that different. Some things are lost like generics for instance.
its all readable if you understand it
and then if itβs obfuscated to smithereens, which it probably is
Well there are more advanced obfuscators that turn java into bytecode
Then it becomes hell
ZKM :)
even then if you know how to read bytecode it is still readable
I routinely look at bytecode all the time
Paramorphism
F
some people think their shitty obfuscation will hide Ctrl + F > βsetOpβ
I mean you could go as far as ASM if you wanted and ASM is still readable so as long as you understand it
You quickly reach a point where it's not worth it
yep
some people think their shitty obfuscation will hide Ctrl + F > βsetOpβ
@forest cobalt Just do reflection + string obfuscation, will make it a lot harder
lol
I have fruit obfuscation..m π
iβve seen people obfuscate their code to hell then the setop is right there
i said harder not impossible lol
sure, but the people you are making it harder for, isn't all that hard for them to begin with
String obfuscation is the easiest obfuscation to reverse
Nobody can't beat Apple.banana(Orange orange)
And it's 100% reverseable too, flow obfuscation isn't always
key has to be there if strings are encrypted
Heck, you don't even need to write code to crack string obfuscation
Just copy and paste stuff
Hello, i am having a Massive issue and i need help
?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.
i have tried to get rid of my current Help list and replace it with a better one
but this one Refuses to leave
o.O
i simply Don't want normal players to see every single command
MiniDigger I am currently a security plugin, but I'm not really sure if it should be open or closed source
wat
tab-completion : -1
Why should it be closed source
I knew it, you were a plugin all along @sturdy oar
Well I guess that's my idea as well
is there ANYONE that is willing to help me out
I am sure someone will, just have to be patient. But really does it matter if your players can see certain commands though?
I mean as long as they don't have the permissions for the command, not like they can use them anyways
it does when trying to get permissions to be set up
I don't even have a proper obfuscators so I think I'll just keep everything opensource for everyone
@sturdy oar not like obfuscation is going to help with a security plugin anyways
instead of having to search through 31 PAGES
in fact I would bet it would hurt the performance of it more then help it
^
But what license would you recommend
the help menu is that orange help menu, and i have even installed AdvancedHelp
or if you really don't care what people do with it, go for MIT
and it doesn't replace the current help menu
Yeah I have mit
no license is great
lol
Are you dumb
essentials doesn't work either
if i ignored all unknown teleport events, would that cause issues for lets say an anticheat
@proud quest I can't really help as I am not familiar with plugins that do what you want
cause issues in what way?
are you developing an anticheat?
yes, but the Player moved to quickly teleports the player which makes bypass
so there is NO Secret setting that i have to turn off
player moved too quickly happens under certain circumstances
to be able to Change this horrible menu?
i never said i was going to release it
frCheats incoming choco
anticheats are memes at this point
I love how Choco comes out of the shadows at very specific times certain topics are being discussed
and at least its not thewoosh or funke's tutorial
lol my girlfriend's been keeping me busy lately so I've been like... in and out of chat the last week
whatβs a girlfriend
Ah so it's offical now
It is 
Guess will be seeing less of Choco now π
not always a bad thing to have good things going on in IRL
Yes exactly, Less complicated = good, and This is why i want to get rid of this current help system
but clearly no one here is willing to help
afaik you can disable the help system with the help.yml?
cannot find up anything online,
I missed out on a lot of conversation here though so maybe you tried that
Less complicated = good, that's why I got rid of my last girlfriend, lol
Bukkit has a help map, you can programmatically access that iirc
as far as i am aware i DID Turn it off
@subtle blade it is command-topics-in-master-index, what i got to set to False, right?
@proud quest Keep in mind, not everyone here is familiar with 100% of everything. Have to be patient and just wait for the right people to get online and provide help π
We are all volunteers here after all
π
Well you can remove command help pages by setting ignore-plugins: All
(I assume that was what you wanted)
yes but here is the issue, i have been scouring the web, for 2 hours now, and cannot find ANYTHING
Choco, i want to fully replace it
@subtle blade Basically the person wants to remove commands so that players can't see every possible command on the server. IE, restrict what they can see in regards to it.

Was going to say - had assumed there were plugins to do that for you
could just restrict that command usage
do the plugins you have used, have their own command for help?
Can you use commands.yml to rewrite the help command to the specific plugin help command?
Idk i remember i did something similar, coul be wrong
Well, you can negate perms for commands on the server
such as the help command
--bukkit.commands.help
that was why I was asking if the plugins that Jim had tried provided their own help pages
it should
then you could just negate that perm for your players
give them the perm for the help command that the plugin provides
and it should accomplish what you are wanting
let me try that in a sec
so i got something called velocity
but its saying to enable ip fowarding how do u do that
This is not the Velocity server
Ask at their means of support. We have no understanding of how their software works
tux is a nice guy and velocity is better than waterfall and bungee
but you must go seek him
well tux is a person, not an it
@subtle blade Is there any way to turn off this forceful help list
so something like AdvancedHelp can take it over
i have taken a screenshot
this is what needs to be turned off
Hey guys, is there a way to update map corners
i need help
i have been at the same problem for LITERAL HOURS
so im using velocity but it keeps saying i need forge to enter the game
3 HOURS Stuck with this issue
Is it considered as a valid bug report? -- Using WorldGuard plugin with the command /stack, give yourself a full inventory of cakes then /stack it (repeat it a second time to get atleast 64) then put them in a shulker box. Break the shulkerbox and you'll see the contents as "Cake x1, Cake x1, Cake x1" and so on...
Can't test on a vanilla server as this isn't possible (or maybe) to get a stack of cakes in one slot
What happens when you place it?
so I reset my xp and found out that the placeholder %player_total_exp% takes all exp you have ever earned. So If I have 400 exp and I buy the book for 400, it stays at 400 even tho my true exp is 0. Why dont they have one that just resets? or is there a placeholder for exp that resets?
@keen compass what causes it to be a circle though?
for (int x = 1; x < 128; ++x) {
for (int y = 1; y < 128; ++y) {
canvas.setPixel(x, y, worldMap.colors[y * 128 + x]);
}
}
I don't get why it wouldn't stay as a square
Please, i beg of you
is there ANYONE here that can help me out
i have scoured online, over and over again, NOTHING!
and No one here wants to help out
Disabling /help?
Yes, Disabling this FORCED help system
i do NOT! Want normal players to see EVERY Single command
Look at this! this is from a normal player's perspective!
31 PAGES!
@proud quest this is a spigot problem. brigadier doesn't do that π
SO WHAT am i supposed to do!
I Want this issue to be gone!
i have been trying to get this horrible issue to be gone, for 3 hours now
tried Multiple plugins
ok
nothing works
AdvancedHelp, also Doesn't work
so someone can help him and someone can help me
https://bukkit.gamepedia.com/Commands.yml
bukkit.command.help
This is the permission, you can take away the permission using a permissions plugin, if your using Essentials you can modify help, you can put the command under ban: in commands.yml,
or put this in your help.yml
ignore-plugins:
- PluginNameOne
- PluginNameTwo
- PluginNameThree
i need help
why velocity isnt recognizing
my client as a forge client
No we do not
forge and velocity have nothing to do with spigot
@proud quest this is in help.yml
@proud quest uou can use deluxe menus to grab the help command and make a custom GUI that they will see showing them help info instead of the list in chat
i already tried a different plugin
and it does NOT Replace the help menu
i tried AdvancedHelp
Yes, and What do i need to do, to FULLY Replace it with one from a Different plugin
because honestly, it feels like its trying to FORCE it onto people
what
That this awful help system from bukkit is forcing itself onto people
refusing to budge
No...
It's not the plugins that don't work, its you thats using them wrong
HOW AM I USING IT WRONG
Something not working isn't always the Users fault
I never said that it was
yet you are blaming ME
What have you tried
I have done Everything you have said and Nothing worked
So your doing it wrong then
i have messed with that help.yml before
Paste your config here
yes
and THAT is what it says
for Me
LITERALLY EXACTLY That
and guess what
it does not work
@frigid ember is that my fault then?
YES
HOW IS IT MY FAULT
?paste
you can't if you manually generated it
i imagine you can setup a custom maprender and fill it in with the plugin
though it seems like more work than necessary
I have but it's not working
@Override
public void render(MapView map, MapCanvas canvas, Player player) {
int mY = maxValue(map.getScale());
for (int x = 1; x < 128; ++x) {
for (int y = 1; y < 128; ++y) {
canvas.setPixel(x, y, worldMap.colors[y * 128 + x]);
}
}
worldMap.decorations.clear();
map.setCenterX(player.getLocation().getBlockX());
map.setCenterZ(player.getLocation().getBlockZ());
map.setWorld(player.getWorld());
}
public int maxValue(Scale scale) {
int s = 0;
switch (scale) {
case CLOSEST:
s = 0;
break;
case CLOSE:
s = 2;
break;
case FAR:
s = 4;
break;
case NORMAL:
s = 8;
break;
default:
s = 16;
break;
}
return s;
}
Note to everybody, Don't listen to Phase, he Clearly wants to decide For you, instead of wanting to listen to what you want
i have mentioned a Billion times that i want to Get rid of that awful bukkit help system and Replace it with a plugin, And all he thinks is that i want to Edit that bukkit help system
all the help he has given is to try to get me to Edit it instead of Disable it
and then calling Me arrogant when he refuses to listen to what i want
Jim your personal experience is unrelated to what he's asking
it doesn't change the fact that he has been Incredibly rude towards me
@frigid ember where are you getting worldMap?
That litterally replaces /help system but he got mad
final WorldMap worldMap = (WorldMap) MinecraftServer.getServer().worlds.get(0).worldMaps.get(WorldMap.class,
"map_" + view.getId());
and is what you showed me in the picture the result of that code?
Yeah
Phaze, you Clearly aren't listening, i don't want to Edit the text file, i want it OUT OF THE WAY! GONE! DISABLED!
I'm not 100% sure how maps generate but you should probably debug what worldMap looks like
@proud quest you should bring those to PMs, it's unrelated.
He blocked me because he REFUSED TO listen and instead kept whining about the same thing
imagine blocking someone on discord
@frigid ember are you sure worldMap is the entire world map?
i am done with this shit, Thanks for nothing, assholes
Hello, I am having some problems with getting my plugin to add and remove people from scoreboard teams
he's not mad at you guys, he's mad at his hairline for receding like the 1920s
@grand aurora what have you tried? Do you have any code yet?
Yes: sb.getTeam("ctf-blue").addEntry(p.getDisplayName()); is what I am using to add people to a team. sb is my reference to the current scoreboard. Is the username the proper string to use for addEntry?
Also, whenever I add a player manually inside of minecraft using /team join and then print out the scoreboard teams in spigot, the team is still empty, but when I create or remove a team, the change is reflected
i would just watch a bunch of tutorials about scoreboards on youtube
I have been reading the docs on scoreboards but I can't figure out why it isn't working
have you tried some youtube videos
It should work it looks like, I would try using p.getName() instead of DisplayName
il have a look
Still doesn't work
Quick question: Does using a new scoreboard have any effect, or should I always get the main scoreboard (I only need one but I don't really understand how multiple works)
I am using manager.getMainScoreboard()
i would really encourage you to watch that video
so that you have some idea on how it works
I watched it, but I am not using a scoreboard for display purposes, I am using it to track teams and use selectors for a capture the flag game
but did the video answer your quick question
No, but I just looked it up on the API docs and that answered it. The video was a good resource though that I will probably use in the future
answer
why wont minecraft download my resource pack
it said it downloaded it
but nothing changed
since when does minecraft download resource packs
its a server resource pack
it should
u need to allow it
though
Thanks, now I have a better idea of what it could be. Do you have to re-set the scoreboard as the modified one?
i think if you have a scoreboard object calling methods that start with add or set should update the scoreboard automatically
Okay, I think the problem is that it doesn't, because I call addEntry and then check immediately after and the entry has not been added
I am doing it the same way but it doesn't work
let me see
okay back at it again
package me.y2k.antidonkeydupe;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityInteractEvent;
import org.spigotmc.event.entity.EntityMountEvent;
public class AntiDonkey implements Listener {
@EventHandler
public void onMount(EntityMountEvent e) {
Entity getent = e.getEntity();
if(getent.getType() == EntityType.HORSE) {
e.setCancelled(true);
}
}
@EventHandler
public void onMount(EntityInteractEvent e) {
Entity getent = e.getEntity();
if(getent.getType() == EntityType.HORSE) {
e.setCancelled(true);
}
}
}``` ^ Event Class
```java
package me.y2k.antidonkeydupe;
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;
public class DupeMain extends JavaPlugin {
@Override
public void onEnable() {
getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "Anti Donkey Dupe Enabled");
getServer().getPluginManager().registerEvents(new AntiDonkey(), this);
}
@Override
public void onDisable() {
getServer().getConsoleSender().sendMessage(ChatColor.RED + "Anti Donkey Dupe Disabled");
}
}``` Main Class
Goal: Goal is to stop players from being able to ride horses and it doesnt seem to be working
wow
exactly
so I reset my xp and found out that the placeholder %player_total_exp% takes all exp you have ever earned. So If I have 400 exp and I buy the book for 400, it stays at 400 even tho my true exp is 0. Why dont they have one that just resets? or is there a placeholder for exp that resets?
Update: It seems that the entry is added to the team, but as soon as I reference the team from a different context it fails
EntityType.Donkey π
@grand aurora im trying it out now
Wait
I just deleted another random team we had (that wasn't doing anything) and now it works
@hallow surge getent.getType().equals(EntityType.HORSE) maybe that will work?
i dont think it will actually make a difference
maybe for String
event i meant
yea its the right event
a horse is an entity
and im using the interact event as well
Are there a method to disable villager trading in 1.15 spigot
are there a plugin
if you are not adverse to Skript you can use that
if you have a very basic knowledge of Java you can do it very, very easily
@frigid ember enums are compared using == since they are a static finals, meaning there is only one of them
and there is a difference when using == or .equals
Yes
yes, but since they are values, its common practice to use ==
either way works
.equals can cause null pointer exception
no, it cant
i meant in that scenario it wont make a difference
lol
== sometimes doesn't work
I mean
any invocation on a null object causes a NPE
public final boolean equals(Object other) {
return this==other;
}
```this is the implementation for equals in enum. what the FUCK is that lack of spaces around the `==`
πΏ hmhm
no its not
it's not hideous
this == other
much better
literally incestuous comparison
they're so close together
this really isn't a case where extra readability is required
that's just writing boilerplate essentially
okay
if you are a better judge of subjective value
so you know, I do prefer == for enums, but it isn't a mistake or anything to use #equals
yeah u have to add space there
its not a mistake, but its something like naming convetions
its a common practice and you should use it @marsh nova
there's no convention on using ==
i said its like
it is also a common practice to use #equals
not on enums
yes it is
its not a common practice
a lot of people do
wasting time arguing with stupid person
you are not being correct, .equals on enum is not a common practice but w/e
it is a common practice
using reference equality is common also
they are both widely used
i believe there's a stackoverflow question on this very matter
i actually used equals for strings and it causes nullpointerexception when string is equal to null
You know, that .equals can actually return false when comparing enums?
dont tell me its a common practice, no1 uses .equals on enums its just stupid
in c u have function called strcmp which is similar to compateTo in java
that .equals can actually return false when comparing enums
it will return false if they aren't equal
Its safer at runtime
which only uses a reference condition under the hood
so why would you assert the patently incorrect claim that "nah it can return false even if its equal"?
You should not mislead others so
Im not misleading others, it actually can return false you can google that up.
anyway you know when using == is faster, and safer at run time?
youre actually brain damaged
you claim that invoking a method which checks for reference equality will produce a different result from using it directly
so you know, I do prefer
==for enums, but it isn't a mistake or anything to use #equals
allow me to quote myself
Using #equals is perfectly fine
it can
Last time I checked Spigot plugin developers are not writing highly sensitive network-level code where every method call layer matters
wtf even is this discussion about
user claimed that invoking a method which checks for reference equality will produce a different result from using it directly
nah it can return false even if its equal
- temedy
the only difference is the method can throw an NPE while the identity comparison can't
that is it
Object1 == Object2
nothing else is different
as simple as that
Precisely, which is why I had to correct his odd claim that the true/false results will be different
@marsh nova It can be different, for example when you would do if(enum.equals(null)) then it would throw a NPE, but if you would be using the equality operator it would just return false
its not the same
using .equals on an enum, which is a singleton, is very gross
.equals() can return false at runtime
don't do that
obviously you would include a null check if you were dealing with null enum values
