#help-archived
1 messages ยท Page 191 of 1
Whats the plugin in question?
NMS = server internals
Oh ok
Things that aren't meant to be accessed by developers but some do anyways
Version-dependent code, basically
More often than not, the answer is "Yeah, probably", though it's best to try and see
Ty
How can I generate ores throughout the map of a pre-existing world?
I'd honestly keep track of chunks that have been "dealt with" and then listen to the ChunkLoadEvent, find a random location (or many if needed) within the chunk (then check if it's suitable) and set the ore. And then mark the chunk as "dealt with"
Thats a bit hard to do. If you want i can give you my api that basically lets you edit every chunk in a world with a Consumer<Chunk>
Other than that you could just regenerate the chunks with the same seed i guess.
public void startEdit(World world, double millisPerTick) {
ChunkEditorAPI api = ChunkEditorAPI.get();
if (api.isRunning()) {
return;
}
api.start(world, chunk -> {
chunk.getBlock(0, 100, 0).setType(Material.GOLD_BLOCK);
}, millisPerTick);
}
Its that easy to just place a gold block at the corner of each chunk
public void startEdit(World world, double millisPerTick) {
ChunkEditorAPI api = ChunkEditorAPI.get();
if (api.isRunning()) {
return;
}
api.start(world, chunk -> {
chunk.getBlock(0, 100, 0).setType(Material.GOLD_BLOCK);
}, millisPerTick);
}
@grim halo
Thank you! I will try this out
Using EzRanksPro and LuckPerms; why does /ranks not show me the same list that I can see with /ezadmin list; (or, in other words; what did I do wrong setting up the rank system?)
hey anyone im trying to import papi into intellij but when i want to build jar package i get this error https://prnt.sc/tlzqbc , and im following guide on gh papi (https://bit.ly/3hlXz6V)
bruh
why?
What does your pom.xml look like
normally i tried to change it to that papi but i get error me.clip.placeholderapi does not exist
when i imported PlaceholderAPI in dependencies
i did import jar manually yes
same as wroten here https://bit.ly/3hlXz6V
- You are using paper. This discord server is for spigot.
- You did not import repository
- You did not import dependency
yes i imported it manually
and when im trying to add it into pom it writes same thing
You cant just import a jar manually in a maven project. There are other ways to include local jar libraries with maven.
ok so how i need to import it
Any one know the 1.16.1 version for craftbukkit for maven? Trying to implement NMS rn and <version>1.16.1-R0.1-SNAPSHOT</version> isn't working.
i worked with eclipse before
so idk
i always done add external jars and it always worked
You got two categories at the bottom.
One is called "repositories" the other "dependencies"
You dont need to replace the stuff thats in there. Just add new ones
Import it and send me your updated pom so i can validate you did it right.
And your repositories cat?
Ok then load the maven changes
Did it work
update: https://paste.md-5.net/boyewanuba.xml thats what I currently have.
CraftBukkit may not be installed to the local repo
Depend on Spigot instead
org.spigotmc:spigot:1.16.1-R0.1-SNAPSHOT
@subtle blade this is what I currently have for all my dependencies https://paste.md-5.net/muxuyasuqe.xml. Tutorials I have read said I need craftbukkit to get NMS working.
CraftBukkit may not be installed to the local repo
Depend on Spigot instead
you must use build tools to get craftbukkit on your local repo
pretty sure the spigot dependency doesn't come with craftbukkit
Isn't that what my first dependency is doing?
Spigot API != Spigot Server
Bukkit = Spigot API
CraftBukkit = Spigot Server
pretty sure the spigot dependency doesn't come with craftbukkit
Spigot is a fork of CraftBukkit. It has to come with it, else Spigot is just a set of patches
Your only server-related dependency should be on org.spigotmc:spigot:1.16.1-R0.1-SNAPSHOT
The server has shaded with it CraftBukkit and the API
ahh I got it working, thanks Choco
But... those are the two options.
Downloading something
Doing it yourself
Spigot does not have any way to communicate with the discord api
How can I change the server version displayed in the debug screen (F3)?
that is the client version and you can't change that using plugins but only with mods
you can
he means the server version string shown in the debug screen
there are plugins for changing that
I've seen the plugin F3Name
But I couldn't really understand it
Registering channels and so on
- removing the attribution of people who pulled in the work for your shit to actually run is just a shitty practice
- It's literally just a plugin channel message
what am I looking at
why this dont work?```
public static String PunishCommand = ChatMod.getPlugin(ChatMod.class).getConfig().getString("punisment.punishcommand");
String puncmd = PlaceholderAPI.setPlaceholders(e.getPlayer(), PunishCommand);
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), puncmd);
ples
what?
remember when I told you to read and follow the naming conventions
just look at it
Why does the org.bukkit Entity class never get suggested as an import by intellij
I have to always manually type it out
Any way to fix?
i do get it too
@wheat mirage get the codata plugin
AI Code Completions
why do you type the whole package?
To demonstrate my point lmfao
why this dont work?```
public static String PunishCommand = ChatMod.getPlugin(ChatMod.class).getConfig().getString("punisment.punishcommand");
String puncmd = PlaceholderAPI.setPlaceholders(e.getPlayer(), PunishCommand);
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), puncmd);
oh.
@strange forge Any ideas? I don't feel like this is something I should need a plugin for
@grim halo
in all honesty i'm not sure, but you can try to invalidate caches
that usually fixes a lot of problems including the one you just mentioned
File > Invalidate Caches / Restart
why this dont work?```
public static String PunishCommand = ChatMod.getPlugin(ChatMod.class).getConfig().getString("punisment.punishcommand");String puncmd = PlaceholderAPI.setPlaceholders(e.getPlayer(), PunishCommand); plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), puncmd);
@frigid ember
I think it's just Entity is such a common name it screws up the caching of it
@frigid ember You should try to write your plugin without a single static keyword. It ryl helps you to understand
oop. Also your naming convention is off. This way a lot of ppl will get confused.
Did you install the necessary package from PlaceholderAPI?
@frigid ember You're just spamming now
what package?
Also, try to repeat less code.
This can be shortened, same with a lot of your code
Also, it's good practice to not indent unnecessarily.
Instead of doing if (CHFEnabled) { code }
Do if (!CHFEnabled) { return; }
Then stay at your current indentation level
Also the BadwordCount.containsKey can be simplified in the same way
@strange forge Clearing cache didn't work ๐ฆ
@wheat mirage what IJ version do you have?
oh strange, an EAP or the stable one?
Stable
[19:16:09 INFO]: UUID of player Katzatrophe is 09aa9750-68c4-4979-a7a4-88b5c22ac5f5
[19:16:11 INFO]: Katzatrophe[/IP:Port] logged in with entity id 275 at ([Grundstuecke]-24.438029107307873, 80.1625, -23.433318208415425)
How can I disable it?
So my log doesn't get too spammed.
use consolespamfix or a custom log4j configuration and filter them out
How can I get the lines on a sign when someone closes it?
I tried that
But it doesnt work
btw I opened the sign with nms
Its to get user input
Would anyone be able to help me write a pretty simple MySQL spigot plugin?
it just needs to generate a code when someone runs a command, and save it to MySQL along with their username
I can try to help, but I don't even know how to register a command yet ๐
i have a chunk, where the player is in.
how can i get all Highest Blocks for this Chunk?
chunk(snapshot) has a method that'll let you know the highest block y of any given column
i think it also lets you use various different heightmaps, such as ignoring leaves, but i think that's a paper exclusive feature
How do I get the string with that?
it should not ignore anything, just want the whole chunk, and the highest blocks at every x-z location
@frigid ember I know, but I was wondering if I could have some help me, since I need this for my server tomorrow ๐
yup, i've seen these
I have to listen to packets for that?
I barely know java though, but I have tried it myself
uh... use PreparedStatement for querying data
or if you aren't doing packet fucknuggetry
use the signchangeevent
or whatever it was called
It doesnt call with packets
that is fired whenever a player changes the text on a sign
yeah if you're already doing packet fucknuggetry, you need to do more packet fucknuggetry
yeah ik
something like this formats: default: priority: 2147483647 permission: 'chm.default' format: '&8%player_name% &7ยป '
you can stop pinging me about it now
sure, whatever
I think he wants per group chat format or something
no
it gets the corner with the lowest x/z value
it's a chunk coord
it means nothing to the actual blocks until you transform it into a coord relative to the blocks in the world (in which case, lowest x/z, as nn said)
so could i probably with getX and getZ get the whole chunk?
@frigid ember what? i want to user can create own one
Yes? If you treat it as a chunk
@frigid ember i changed maxHeight to highestBlockAt, and works perfectly. thank you!
well it doesnt work either
it does nothing
lol
whats wrong
Chunk chunk = players.getLocation().getChunk();
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
int maxHeight = chunk.getWorld().getHighestBlockAt(x, z).getY();
Block block = chunk.getBlock(x, maxHeight, z);
block.setType(Material.AIR);
}
}
getWorld
You're literally tryna use chunk coords on the world
get them from the chunk itself
how exactly? cant get highest block from a chunk if i see right
but i never see anything right soooo :c
get a chunksnapshot
if you can get the highest block y from the world directly, don't take a chunk snapshot
unless you need the snapshot for something else
taking chunk snapshots is a relatively expensive operation
what should i do now xd the code i sent doesnt work...
You'd need to use block coords for that
(chunkX << 4) & x basically
Assuming that there ain't just a method on Chunk already
or chunkX * 16 + x
no
Don't use stuff like that
You'll blow up stuff like negatives
It's a bitshift for a reason
might just be talking out of my ass but i'm pretty sure lshift will have the same semantics as multiplication even with negatives
rightshift won't
unless you need a chunk snapshot, don't take a chunk snapshot
does he need a chunk snapshot? other than for the heightmap?
World gives you access to the heightmaps without a chunk snapshot
Chunk chunk;
int chunkX = chunk.getX() << 4;
int chunkZ = chunk.getZ() << 4;
World w = chunk.getWorld();
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
Block b = w.getHighestBlockAt(chunkX + x, chunkZ + z);
// TODO Whatever you want here...
}
}
if you mean this:
https://hastebin.com/odotibacur.apache
it works a bit
it only removes grass and flowers, but grassblocks are not removed
for (Player players : Bukkit.getOnlinePlayers()) {
Chunk chunk = players.getLocation().getChunk();
int chunkX = chunk.getX() << 4;
int chunkZ = chunk.getZ() << 4;
World w = chunk.getWorld();
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
Block b = w.getHighestBlockAt(chunkX + x, chunkZ + z);
b.setType(Material.AIR);
}
}
}
so im using this
@EventHandler
public void ZombieDeath(EntityDeathEvent event) {
event.getDrops().clear();
LivingEntity dE = event.getEntity();
if (dE instanceof Zombie) {
dE.getLocation().getWorld().dropItem(dE.getLocation(), new ItemStack(Material.COOKED_BEEF));
}
}```
do make it so that zombies that drop beef
and nothing else
thing is
I'm probably being really stupid here, but how do I turn the key into an ArrayList of inventories?
it doesnt work
i can do that?
most certainly
ok
thats what i am using for my cutclean:
if (livingEntity.getType() == EntityType.SHEEP) {
event.getDrops().clear();
Random rand = new Random();
int newnumber = rand.nextInt(100);
if (newnumber < 30) {
event.getDrops().add(new ItemStack(Material.COOKED_MUTTON, 1));
} else {
event.getDrops().add(new ItemStack(Material.COOKED_MUTTON, 2));
}
}
Is there a spigot API equivalent of WorldServer#b(AxisAlignedBB)?
It checks whether a bounding is colliding with the world voxels (i.e. blocks)
getboundingbox i suppose is only entity ๐ค
(new Random().nextInt() < 30) ? 1 : 2
im doing this
public void ZombieDeath(EntityDeathEvent event) {
event.getDrops().clear();
LivingEntity dE = event.getEntity();
if (dE instanceof Zombie) {
event.getDrops().add(new ItemStack(Material.COOKED_MUTTON, 1));
}```
and it doesnt work
you probably need to setDrops
@tiny dagger Yeah looks like you need to use NMS to see if a bounding box is overlapping with world voxels]
doesnt work
Should deffo work
event.getDrops().add(new ItemStack(Material.COOKED_MUTTON, 1));
}```
setDrops in not a method
yeah ill debug it
if (dE instanceof Zombie) {
Bukkit.broadcastMessage("Debug");
event.getDrops().add(new ItemStack(Material.COOKED_MUTTON, 1));
}
Good stuff, let us know
change the constructor from LivingEntity to Entity, Zombie is dead so is not alive
๐คก
@rare prairie as i see you, i think i am using your Tab Plugin, is that yours?
i totally dont know how to check if priority is bigger than priority... https://paste.helpch.at/araletovis.js
lemme see
heres my full
@EventHandler
public void handleEntityDeath(EntityDeathEvent event) {
if (Settings.cutclean && Main.timerRunning) {
LivingEntity livingEntity = event.getEntity();
if (livingEntity.getType() == EntityType.SHEEP) {
event.getDrops().clear();
Random rand = new Random();
int newnumber = rand.nextInt(100);
if (newnumber < 30) {
event.getDrops().add(new ItemStack(Material.COOKED_MUTTON, 1));
} else {
event.getDrops().add(new ItemStack(Material.COOKED_MUTTON, 2));
}
}
that works for 100%
Lol
i totally dont know how to check if priority is bigger than priority... https://paste.helpch.at/araletovis.js
@frigid ember
that shit shouldn't even compile ples
does it shows erorrs?
ik why
no
your IDE should be screaming at you so hard right now
i didnt do the onenable thing
String format = ChatMod.getPlugin(ChatMod.class).getConfig().getString("formats" + key + "format");
String fromat = PlaceholderAPI.setPlaceholders(e.getPlayer(), format);
if (pri > pri) {
if (e.getPlayer().hasPermission(permission)) {
e.setMessage(ChatColor.translateAlternateColorCodes('&', fromat));
}
}
what is this shit
registered? @dusky sigil
@tough kraken uff
i would start by learning java
pls
plsssssss
i would start by learning java
That answer though
haha it wasnt a front
plsssssss
Unfortunately, people on spigot tend to not endorse spoon feeding, so I would recommend posting your question instead of asking for code.
idk how often i just forgot the @barren runeentHandler
๐
same
even tho it's not even needed
man i just hate my life
but it keeps me from having a miserable life
i have @Nothingable everywhere
channel became depressing!
"serious Spigot and BungeeCord Help... and for sad people"
just wondering, would this trigger if I ran the command /hi? public void command(PlayerCommandPreprocessEvent event) { if (event.getMessage().split(" ")[0].equalsIgnoreCase("hi") { String[] cmdMessage = event.getMessage().split(" "); int i = 0; String[] args = new String[cmdMessage.length - 1]; while (i < cmdMessage.length) { args[i] = cmdMessage[i + 1]; i++; } System.out.println(args); } }
i dont think if the command doesnt exists
well it's command pre process event
preprocess fires before the server attempts to match the command against any existing command
yeah, but it only works for existing commands probably
I'm trying to make a custom command that doesn't have to be defined in plugin.yml
better question
why would you do that?
why?
the actual solution to that is to reflectively register it to the server's command map
not doing weird event listener bullshit
because players want to translate my police plugin into other languages, and according to them they want /911 to be their countries emergency number thing
that would give an index out of bounds exception
u can use aliasing maybe?
split always returns an array
yeah
if there is no character to consume and split, it just returns a 1 length array containing the og string
u can use aliasing maybe?
Thats exactly what I want to do.
just use
command
aliases: [123, 234, 345]
ramdom, get the command and give it an alias programmaticly
just use
command
aliases: [123, 234, 345]
Put that uses plugin.yml ๐คฆโโ๏ธ
I don't want to use plugin.yml for this
I want them to simply reload the config instead of editing some stupid plugin.yml file
then maybe with a config string
but idk if it works in the plugin.yml
JavaPlugin plugin;
PluginCommand cmd = plugin.getCommand("911");
cmd.getAliases()
ey b0ss they cant even edit the plugin.yml im pretty sure
what would this do? cmd.getAliases()
get the aliases
then you can modify the list
and setAliases
never ever even contemplate using command preprocess for anything like this
or i will find you
so like cmd.setAliases("myCmd")?
Just register the command in your plugin.yml
and set the aliases there
boom, ez
he wants the aliases to be configurable i guess
yeah
i think he wants the users to be able to add aliases
Just register the command in your plugin.yml
um no
i think he wants the users to be able to add aliases
yeah
oh
okay thanks, I'll try .setAliases()
I didn't know setAliases() was a thing but I might be making use of that
I think you have to do something to refresh commands sent tho
https://timings.aikar.co/?id=1335333440ac46da9443935adb1ea604 any ideas lads?
Aikar's Timings Viewer - View Timings v2 reports from Paper and Sponge
Looks like Skript is eating your server alive
wait.. what are you doing on player move event
If you have a lot of moving parts in there without returns
don't
the gc flags are wrong
you mean the fork?
You're on a fork
ze p fork
What's the best thing i can do to try and hix it?
I literally cannot make it more fucking clear than that
๐
I'm just going to start kicking anybody that comes in asking for support with Paper
we don't support outdated versions at paper
I'm sick of answering the same fucking question
Yeah, we don't support them here either
go to the downloads page and download an up to date version
maybe blacklist the word paper ๐
Though I'd rather someone over there tell you off than over here
Because you're now 0/2 on support
or blacklist https://timings.aikar.co
(1) not our software, (2) not an up-to-date version
lmao you asked on spigot ๐ https://www.spigotmc.org/threads/tps-problem.453147/#post-3886898
with an alt account
which is against the rules
oh boy
tell your boys to update
^
both accounts are made today ๐ค
the fork doesn't support 1.8.8
lmao the thread just got deleted
maybe if the message contains "paper" a bot just tells them to fuck off to the paper discord
yeah
Choco was thinking of doing something like that but with Kotlin
Should tell them that they're SOL if they are on 1.8.8
1.8 and the rabid moh peeev vee peeh fanbase should be burned on the fucking pyre already
I can't do anything about that. I have no say over the verification process
It should go through the database every week or so and unverify accounts that aren't here anymore
!verify
Usage: !verify <forums username>
I know that it updates the nicks every week or so, no idea if it unverifies account ๐ค
is there a way to find what face of a block a player was looking at when they broke the block in BlockBreakEvent
Google it
inb4 nuker
lol
hey guys, I asked this bout an hour ago but if I got an answer I missed it, though I did see the guy who suggested using UUID
how can I have an array list of inventories?
new ArrayList<Inventory>()
hmm getFacing is kinda odd
yeah that's not what you want to use for the interacted-with block face
i'm not sure if that's exposed in the block break event
new ArrayList<Inventory>()
@pastel nacelle thx
yea it doesnt seem to work well for this
i couldnt find anything under BlockBreakEvent tho
looks like I don't need the new ๐
yeah i don't know if block break event exposes the interacted-with block face
hm
what do you need it for anyway
and it rotates based on direction / blockface mined
i c
i think the block should still exist in the world during the event so a raytrace will probably work
[recipe.setIngredient('A', Material.DIAMOND);]
when i do this is there a way to set the quantity
its part of the custom recipe code for plugins
I got a quick question
in this situation here
will the last index of inventoryTree be removed?
or is it only removed from the ArrayList list?
It's only removed from list
oof
does inventorytree.get return a clone of the list or the list itself
I'm not actually sure
well, the answer solely hinges on that
I think it must return the list iteself
*itself
and not a clsoe
*clone
I can always test it I suppose
if it returns the list itself, then whatever you do to the list returned by it will also be reflected by whatever it stores
because they are the same object
does anyone know about the thing i asked right before
nice
recipe.setIngredient('A', Material.DIAMOND);
how do i require a stack of diamonds as opposed to 1
pretty sure you don't
You set the exactmatch thingy fucker right?
what?
if a set in a hashmap doesn't exist, will using HashMap.get(NonExistantKey) return null?
๐
cool
hello i need help. For some reason my server randomly shuts down (even if their are no players in it, and just before it crashes it says this: https://hastebin.com/awilayereq.css (ignore info stuff)
ยฏ_(ใ)_/ยฏ
somebody else might be able to help, but unfortunately I have no clue
public void onChat(AsyncPlayerChatEvent e){
String message = e.getMessage();
if (containsIgnoreCase(message, "[pwarp]")){
Player p = e.getPlayer();
if (WarpManager.hasWarp(p)) {
e.setCancelled(true);
TextComponent warpMessage = new TextComponent(message.replaceAll("\\[pwarp]", org.bukkit.ChatColor.RED + p.getName() + "'s PlayerWarp"));
warpMessage.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/playerwarp " + p.getName()));
warpMessage.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click here to teleport to " + p.getName() + "'s playerwarp!").color(ChatColor.RED).create()));
for (Player player : e.getRecipients()) {
player.spigot().sendMessage(warpMessage);
}
}
}
}
I'm currently having a problem with this that when i send them the message it doesn't add also the server's chat format to make it seem like its a message sent from the player.
I know I can use AsyncPlayerChatEvent#getFormat() and then replace the basic minecraft placeholders with the message and player but if a server using this plugin uses a different format I don't think it'll work.
How should I do this?
^ please ping me if you answer this
public void loadFromFile() {
YamlConfiguration config = main.getDataConfig();
config.getConfigurationSection("data.").getKeys(false).forEach(key -> {
suggestionList.add(new Suggestion(
config.getString("data." + key + ".suggestion"),
Bukkit.getPlayer(config.getString("data." + key + ".player"))));
});
data:
suggestion1:
player: player
suggestion: "suggestion"
suggestion2:
player: player
suggestion: "suggestion"
Whenever i try to get the config section "data" it returns null idk what im doing wrong (i have tried "data." and "data")
@steady osprey get rid of the .
ive tried that
is the config section itself null?
yeah
Lads you know the gc flags? Where do u put them in?
You shouldn't have the dot after data on the get section.
Lemme get a YamlConfig... so I can check stuff quickly.
Try doing just YamlConfiguration#getKeys instead of on a configuration section.
Wait, no. Don't lol
Forgot YamlConfigurations were like that.
Ok, I have no idea.
How do I migrate the files for the nether and end dimensions if I want to switch back to vanilla from spigot?
Maybe
"data"is a reserved keyword. Have you tried a different word?
@frigid ember didnt work
your the 3rd person to say that, i have already tried that
Still don't use it there
my other plugins have the . and its perfectly fine
Alright if you say so...
@distant silo
The nether file has a DIM-1 file in that. Move that to the overworld file.
The End has DIM1. Move that to the overworld file
You should then have DIM-1, DIM0, and DIM1 (If memory serves correct, that is) in your overworld file.)
Backup before you do that
^
It's not safe or recommended but it might work
Is there a proper way to do it?
Not really that I know of
Thanks
public void loadFromFile() {
YamlConfiguration config = main.getDataConfig();
config.getConfigurationSection("data.").getKeys(false).forEach(key -> {
suggestionList.add(new Suggestion(
config.getString("data." + key + ".suggestion"),
Bukkit.getPlayer(config.getString("data." + key + ".player"))));
});
data:
suggestion1:
player: player
suggestion: "suggestion"
suggestion2:
player: player
suggestion: "suggestion"
Whenever i try to get the config section "data" it returns null idk what im doing wrong (i have tried "data." and "data")
ive been stuck on this bug forever now and its the same thing i do in my other plugins idk why it isnt working
The conversion doesn't appear to work
Is there any way to force the wither to show protected status
When it's melee only mode?
If you give it more health than it normally has
It still has the half health behaviour
but the graphic is broke
It doesn't show the white barrier
So my intended behavior for what I'm trying to make here is;
Player runs a command, it asks them to type something in chat. They send a message, and then it runs a command to go to the next step in this process
What's happening is that it gives an error when I try to use player.performCommand in the eventhandler
AsyncPlayerChatEvent, and the command is a custom one that's supposed to give another prompt
It doesn't even get to running the command, and in the console it says Caused by: java.lang.IllegalStateException: Asynchronous command dispatch!
don't run commands asynchronously
asyncchatevent like the name implies can be async
@steady osprey The section is data not data.
also doesn't bukkit have a "conversation" api for something like this already
oh does it?
huh look at that
Thanks, i'm still learning how everything works
And that would go in the Main class?
@steady osprey The section is
datanotdata.
@wraith thicket already tried that and it makes no difference
ohhh got it
You can do FileConfiguration#getKeys to see what keys the config actually has
I.e output as debug
You're most likely reading an empty file or something
so "Main thread" refers to Bukkit.(etcetera) functions?
No
Main thread is the thread on which most of the server code runs
It's just that most of the Bukkit API is not thread safe, i.e it shouldn't be used from an async thread
i initialized the yamlconfiguration wrong ๐คฆโโ๏ธ
Got it, thank you!
Is there any way to force the wither to show protected status when it's melee only mode?
If you give it more health than it normally has
It still has the half health behaviour
but the graphic is broke
It doesn't show the white barrier
Sounds like packet time
public void onChat(AsyncPlayerChatEvent e){
String message = e.getMessage();
if (containsIgnoreCase(message, "[pwarp]")){
Player p = e.getPlayer();
if (WarpManager.hasWarp(p)) {
e.setCancelled(true);
TextComponent warpMessage = new TextComponent(message.replaceAll("\\[pwarp]", org.bukkit.ChatColor.RED + p.getName() + "'s PlayerWarp"));
warpMessage.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/playerwarp " + p.getName()));
warpMessage.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click here to teleport to " + p.getName() + "'s playerwarp!").color(ChatColor.RED).create()));
for (Player player : e.getRecipients()) {
player.spigot().sendMessage(warpMessage);
}
}
}
}
I'm currently having a problem with this that when i send them the message it doesn't add also the server's chat format to make it seem like its a message sent from the player.
I know I can use AsyncPlayerChatEvent#getFormat() and then replace the basic minecraft placeholders with the message and player but if a server using this plugin uses a different format I don't think it'll work.
How should I do this?
@frigid ember Could you potentially spoof their health on the client?
Should be reasonable with protocollib
Thanks @frigid ember
someone ping?
Provide the error sent in the console.
read this
use google translate if you have to
no he is from like korea or something iirc
he just doesn't understand words
How do I set up my exec file on my Mac
Yes
Hold on
How can I send a picture?
Can I pm you?
Ok how do I verify
Usage: !verify <forums username>
Here is my exec file on my Mac
Whatโs wrong with it
Itโs the top file
Thereโs my start script
Ok
Hey I'm trying to prevent players from damaging each other with projectiles if they are part of the same faction. I managed to do this with melee attacks, but EntityDamageByEntity doesn't seem to be called with projectiles. What event should I be using?
Hey guys, I'm using player.setFallDistance(-9999) and it's still killing the player with fall damage. Using damageCause.fall is not possible due to the way I'm giving the effects to the player, which is creating a structure and when the player enters the area given, they gain Levitation or Flight. As they leave the area, they lose the Levitation or flight and have the setFallDistance. It being set at -9999, they are still dying from heights they normally would. Any reason why this might be the case?
gotta show code ^^
also is there a subinterface (Like Ageable) that describes entities that also have a baby variant?
Ageable includes a ton but theres a special case (Parrots) and there are some excluded such as Piglins and Zoglins
those arent errors
looks like there was a NullPointerException. youll need to take a look at your code to try to find it
@warm stirrup Does it look like he's a dev lol
@plain olive Contact the dev of the plugin, give them the logs
yeah but the problem is that there are special cases :/
Like?
If so, deal with them yourself
Or submit a PR if you don't think it's intended
Yeah it's not ageable if it can't grow up lol
Baby zombies don't grow up
I think YOU'VE misunderstood.
You've misunderstood me
I said it can't grow up
You said I'd misunderstood
Don't know what you're smoking
declaration: package: org.bukkit.entity, interface: Ageable
Can't inherit ageable if it has no age
I brought it up because it doesn't fit the damn Ageable interface
Come on, keep up.
Like i said, you've misunderstood
He asked why some are excluded
That's why
Now please, shut up.
I wonder if it's possible to change block breaking speed, example make mining dirt with hand take 15 seconds.
I assume it's possible, for example: two players can break the same block and it will take half the time to break it
Anybody got some tips?
@frigid ember Look into the client, see what modifies breaking speed
Haste is your best bet
There may be an Attribute enum for it
but I doubt it
I would like to fake a client "helping" to break a block at least to double the breaking speed
@frigid ember What the fuck are you talking about. I've told him why Ageable isn't built for Zombies and Zoglins
that should be possible
Sorry, can't stand people acting big when they haven't got a clue what they're talking about.
Must be genetic
@frigid ember Is that really a mechanic. You may be able to fake it with packets.
No, I said it was intended
Because ageable doesn't fit
Holy fuck dude, can you read?
Please be quiet
@frigid ember wiki.vg can help here
also
you probably want to stop pinging someone in literally every message you send
it is quite irritating
i don't care
Atleast I agree on something
This chat moves fast
If someone answers my question
They should ping
And likewise
Otherwise people just ask the same question and dont see the answer
i 100% do not want 3 pings in a row from random people who are responding to something I said a while ago
Especially if there's text between the msg and your answer
that wasn't even addressed at them
i have
Great, glad we're all happy
unfortunately not everybody can do that
To elaborate a bit more on my post asking about setFallDistance, I'm basically wondering if setFallDistance is currently bugged or if it's working for others? Because no matter what negative number I set for it, the player will still take fall damage from distances that they normally would take fall damage from.
@toxic moat Put a debug for getFallDistance in an entity damage event to check it's being set properly
If it turns out it actually isn't working, you can always do your own calculation there for fall dmg
I'm setting it after I take away Flight or Levitation.
I figured I might have to do a debug message for it, but I wanted to see if others had the same issue or how to fix it if I'm just being a goof.
Block Break Animation hmm I wonder if that will do it...
Right, but in theory setting it to -9000 for instance mean they have to travel 9000 blocks down before they hit starting to take fall damage?
u can use a runnable and keep setting it to 0
then cancel it when they hit the ground;
is it possible to make stone pickaxe break wooden stuff faster without changing stone breaking speed?
ez just change it to an axe
uh
do u have cod to show?
code*
Whoa
u have the code that runs the command?
basically this:
I have two blocks(iron already remodeled): iron trapdoor and wooden trapdoor... but I'll just not use the iron trapdoor and use different wood trapdoor instead
ok
me too
@plain olive have you tried to delete server.jar and download the most recent one?
do it. come back if that fixes it or not
is this a command part of a plugin ur making?
or is it part of some other plugin that you're using?
go figure it out @plain olive
how much do you know about servers @plain olive ?
Thank you for the responses. I'll see what I can do when I get home from work. โค
hes getting bullied with the emotes
@plain olive You dont even know what server.jar is??
Bruh
BRUHHH
@plain olive when you execute the command there should be an error in the console
server.jar is what runs the server
send it here
Server.jar is the main thing that runs your server
@plain olive you got a lot to learn. This may seem rude, may I ask how old are you?
you cant just go here and throw some errors and expect some quick answers, provide some informations
Like generator
what the f
generator
???
Do you know where to find console?
Okay
oh man
does the error happen randomly or when you execute a command?
oh boy
minehut
This guy questions everything
check your console
everything
you cant be a server owner if u dont even know what server.jar is
spruce
don't send full logs, just send the part which is the actual error
????
what type of videos to aee?
minehut made you go dum dum
How do I include a config.yml file in my plugin folder and read/set values to/from it?
then type "youtube"
@plain olive this is what you need to do, find your console to that minehut thingy and go back here and send us the error youre getting
Oh frick he understands me
what a legend
Never knew that, i dont use minehut
here check this tutorial out
- Simple Port Forwarding: http://simpleportforwarding.com
- Minecraft server software: http://minecraft.net/download.jsp
- IP-Finding Website: http://cmyip.com
Here you are Minecraftians. If you were looking for how to set up a Minecraft server, then you've come to the right ...
beta 1.7.3?
whoops
wrong version
which version are you on @plain olive
minehut is only 1.15.2 iirc
you found it?
there's no way to change versions
the differential
the diffrenat between logs and console?
public void onChat(AsyncPlayerChatEvent e){
String message = e.getMessage();
if (containsIgnoreCase(message, "[pwarp]")){
Player p = e.getPlayer();
if (WarpManager.hasWarp(p)) {
e.setCancelled(true);
TextComponent warpMessage = new TextComponent(message.replaceAll("\\[pwarp]", org.bukkit.ChatColor.RED + p.getName() + "'s PlayerWarp"));
warpMessage.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/playerwarp " + p.getName()));
warpMessage.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click here to teleport to " + p.getName() + "'s playerwarp!").color(ChatColor.RED).create()));
for (Player player : e.getRecipients()) {
player.spigot().sendMessage(warpMessage);
}
}
}
}
I'm currently having a problem with this that when i send them the message it doesn't add also the server's chat format to make it seem like its a message sent from the player.
I know I can use AsyncPlayerChatEvent#getFormat() and then replace the basic minecraft placeholders with the message and player but if a server using this plugin uses a different format I don't think it'll work.
How should I do this?
Please ping me if you answer this ^^
@plain olive ||ืื ื ืื ืืืืข ืืืืจ ืืฉืจืืื||
thats alot of 1 plugin
@plain olive stop using minehut
@plain olive just change server hosting bro
and get a real server which costs 7 euros a month
go to serverpro or aternos something like that if u still want free hosting
if you know where to buy, you can buy a server under 5 euros a month
but i suggest buying one, free hosting s u c c
I wouldn't say get a real server, getting a real server would require you have to know what you're doing.
stop paying to minehut, it sucks
But get a host that lets you download any plugin you want
it's damn expensive
Like pebllehost
wait minehut has a paid version??
even server pro is better
server.pro have good panel ngl
Of course it does @frigid ember
they use nebula or cpanel i think
lol idk i dont use minehut
bruh
monkaS
I dont either, but how do you except these company's to gain money
5 usd per month ๐ ๐ ๐
comparing actual minecraft server to minehut is like comparing car to a carpet
and a person is having trouble with free version
I meant to say minehut sorry
ah yes the physical minecraft server
i got one in the mail
Home hosting server is better than minehut. not gonna lie
Yeah physical server obv, not physical minecraft server
@opal heron depends on your internet
compare a real hosting to minehut is like comparing a T-55 Tank to a kid toy car
oh frick he found the error
@frigid ember I'll try that thanks
null
nvm
null
LUL
null
omega null
Does the null error happen to every commands?
omegaNULL
I love humans oh my god.
sees null
null
other people see null
null
MineHut
Is there any overview of what and how parts of Spigot are obfuscated and where to find and apply the obfuscation maps?
MineHut ๐ฉ
^
upload to aternos
i dont think that aternos gives you full server access
oh boy what a sad way to end minehut experience
just port forward
^
dats actually funny
yeah, just selfhost
you can use MineHut.getTransferManager().transferToAternosServer("XpizzaMCX", Boolean.valueOf("true"));
this is why I hate using third party hosts lol
you're better off paying like what, 6 dollars a year for an IP and self-hosting
@plain olive then make a server from scratch
@plain olive if aternos betrays you too, try server pro
Self hosting requires you to have some knowledge of networking and administration + enough bandwidth and also there are some security implications if you just open ports
i would suggest you to watch like this
Git: http://msysgit.github.io/
Build Tools: https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
Start.bat text:
@echo off
cls
:start
title My Server
java -DIReallyKnowWhatIAmDoingISwear -Xmx512M -jar spigot1.16.1.jar -nogui
set ...
wtf verifed channel lmao
xD
@plain olive you should learn on your own now, you're getting bamboozled so much here
give them IP
^
it's like talking to a 10 year old with ADHD, except we're all 10 year olds with ADHD congregating in one channel to yell at you
?
huh
what?
it's like explaining quantum physics to a first grader
wtf I said we're the 10 year olds with adhd
minehut has a random server selector
not them
this is gold
oh lmfao I see where I fucked up. Bad wording
y are you forcing your way to minehut LMAO
whoa
I will not forget that
what is that
no he did not
I think that they don't exactly get how servers work and they're trying to understand .-.
probably shouldn't make fun of them over it tbh
๐
but it's fun to make fun of him
LMAO
bro
or it was because people were saying minehut is shit
you can write a banknote plugin without any efforts lol
but im broke
or just well, get a working one
and they call that "perks"
thank you for letting me know, deer man
they once got backdoored via skript-mirror i dont trust them
what server is this
wow.
imagine if it was a spy from minehut
And it reports reviews, thats actually sad
Uh
youre back again to get bamboozled?
for a second I read that as Vote game!!!! you cheese!!!!
We all cheese ๐ง
4
no way
(not to mention Discord TOS)
oh boy
If he's 4, im impressed but probably not
I love how
o, hes talking shit now
i am idiot yes
like it's not even ironic, people actually wondered if it was true for a second
ok lets take this out of #help-archived maybe
yeah good point
@plain olive You already got the answer, switch to different hosting
stop being stubborn
Okay so if you want banknotes, from what I know, you'd have to switch to a new host
LOL
LMAO
yeah theres no way
oh man i didnt know switching was trash answer
cant you just copy everything manually???
Skript isnt like java code, its plain text so you can copy that
You can, i used it before
@sinful spire skript is confusing to me. It's like coding in a human language. So ugly.
yeah
Seems easy for new people though
submit a ticket to minehut telling them banknote is broken and ask for alternatives
@plain olive Since you're on discord, why not join MineHut's discord
instead of asking the same question over and over
now he's gonna ask about how to join their discord for sure
Edit: I was wrong
This man doesnt play
They wont help you move the files probably
hes serious
if moving off minehut is too hard just ask them to fix the banknote lel
kek
dont use the nono words
@plain olive research and do whatever you think is right. Don't ask us about unrelated shit.
You can... In the file manager
this is spigot, not prohosting mc
go into r/admincraft
what did u write
Dah
Is there any plugins that let you edit the vanilla enchant books so you can have books with sharpness 10 and stuff, and also change the lores and names of the books and the lore that the enchantment applies
what
u can do that in vanilla
if u want to pay for better hosting use mcprohosting or something
@frigid ember they dont, i think but i do know is that they have very so little plugins installed in their plugin catalog
Is there any for 1.16
@plain olive then do the server from scratch and download the worlds