📒 SignEditor - Simple sign editor [1.8.9 - 1.11.2]

:ledger: SignEditor

SignEdit is maded to simple edit your already placed sign lines or copy one text sign to other signs with copies.
A very util tool if using with ShopSigns and AdminShop plug-ins.


:warning: Commands and Permissions:

Command: /setline [1-4] [text of line with max of 16 characters]
Permission: signeditor.setline
Description: Allow you to edit each line of a sign, with colors using “&”. Rigth click the sign to paste the text.

Command: /copysign [optional number of copies]
Permission: signeditor.copysign
Description: Copy the text from one sign to other sign or to others signs with optional copies. Use rigth click on the sign to copy and paste the text to other signs.

Command: /signedit ?
Permission: none
Description: To get help about commands.


:arrow_down: Download for 1.8.9 to 1.11.2:

FabioZumbi12 / SignEditor

6 Likes

Good idea :slight_smile:

Going to test this out later today! I’ll let you know what I run in to. Thanks for the great work! Keep it up!

2 Likes

Tip:
What you are doing:

new CommandExecutor() {
    @Override
    public CommandResult execute(CommandSource src, CommandContext args) throws CommandException {
        // do stuff
    }
}

What’s much easier:

(src, args) -> {
    // do stuff
}

Also, it’s recommended to throw a CommandException instead of sending a message and returning CommandResult.empty() when there’s an error in processing, whether it means the user did something wrong or that there was an internal exception.

By the way, why’s it a 16 character limit? Signs use JSON text, so the color codes don’t append to the character count like they used to, and there isn’t a character limit on signs anymore - it’s by character width now.

1 Like

How to use like this way? As you know, I am new on new command api, and I maded like the sponge docs: https://docs.spongepowered.org/master/pt-BR/plugin/commands/arguments.html

I will fix the characters. I forgot the color codes.

Show me other way. Why not send a own message to player?

And about the plugin functionality? Nothing to say?

  • Requires JAVA 8

Sponge itself requires Java 8, so there’s no need to state that for your plugin.

Your code:

.executor(new CommandExecutor() {
    @Override
    public CommandResult execute(CommandSource src, CommandContext args) throws CommandException {
        //...
    }
})

Easier code:

.executor((src, args) -> {
    //...
})

Code I usually use:

.executor(this::setline)

//etc, end listener method

private CommandResult setline(CommandSource src, CommandContext args) throws CommandException {
    //...
}

https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html


Your code:

src.sendMessage(text);
return CommandResult.empty();

Easier and better code:

throw new CommandException(text);

Also, another note: The ConsoleSource is not a logger. Certain log messages don’t go to the console; certain console messages don’t go to the log.

import org.slf4j.Logger;

//...
@Inject
Logger logger;

And about the functionality - looks good! I generally post regarding areas of improvement program-wise, and just automatically assume everything already works.

1 Like

Thanks for examples.

I using Console as logger to make the console outputs more friendly. I dont like the plugin “id” on console.

About your suggestions, where i find those of your codes tips?

All i do is follow the docs, but always you come with a diferent(and more simple/eficient) code.

:arrow_down: Download for 1.8.9 and 1.10.2:

:white_check_mark: Changes:
:heavy_check_mark: Improved the code. Thanks pie_flavor;

You may not like the appearance of the plugin id on console, but that’s not the important part. The important part is proper logging (and possibly proper hiding).


It’s just Java knowledge. I like using the new fancy Java features and APIs whenever possible.

Having the plugin id on the console is essential to server owners trying to debug which plugin a message is from. It might look ugly but it’s there for a reason.

Nah, since all erros show on console and all messages sent by players and CONSOLE are registred, theres no diference ‘-’.

But anyway, i tryed to use only the plugin name on plugin id but dton allowed me. Now i tested i i got how to, and i will use the logger again. Thanks for help.

:arrow_down: Download for 1.8.9 and 1.11.2:

:white_check_mark: Changes:
:heavy_check_mark: Added /signedit for command help;

1 Like

In our continuing effort to phase out the Plugin Releases category, this thread is being locked because the plugin is already listed on Ore.

Check it out: FabioZumbi12 / SignEditor