1. 6 years ago

    Okay, so with the recent spamming of people sending teleport requests it has come to my attention that we could use an editing of our teleport system. After some rumination on how this could be fixed and consulting with some fellow players here are the two ideas we have come up with.

    1) To accept teleport requests, instead of hitting accept you could type accept. For example,
    /accept LittleOwlet3
    If you want to decline a request you simply ignore it or alternatively type
    /decline LittleOwlet3

    2)This one might be a bit more complicated. Each player would have their own list of people that can send them teleport requests using the system we have now. To add or delete people from the list you might have something like
    /add LittleOwlet3 friend list or
    /remove LittleOwlet3 friend list
    This would cut back significantly on random teleport requests however could pose a problem for grief/raid players who spend most of their time trying to teleport to new players on the server.

    The reason for considering a change like this is really quite simple. It is too easy to hit accept by mistake if you are reading chat or are about to click the vote link when someone sends you a random teleport request and chat scrolls down. The last few days there has been a team of guys just sending requests back to back and it has happened several times before.

    I know we all love playing on this server and that Crafty does a fantastic job with all the work he has put into the server so thank you for taking the time to read this and consider these changes. If anyone else has some other ideas I would love to see them posted in the comments :D

  2. Edited 6 years ago by Valgys

    Is it possible to flag/unflag oneself open/closed to TPA requests via command blocks? Like putting on a spam filter so it doesn’t show up in chat?

    That’d force tpers to send a PM to ask receiver to unflag themselves.

  3. Typing a full name would be so amazing that is one of the best ideas I ever heard of, GJ Owlie!!

  4. I am not the most versed in minecraft commands, but given that the server is vanilla, I believe there is no way to implement custom commands with names such as /add /remove. The only command a non-opped player could use to achieve such ends is /trigger. It is a nice idea though. Feel free to correct me if I am wrong!

  5. @LittleOwlet3 1) To accept teleport requests, instead of hitting accept you could type accept. For example,
    /accept LittleOwlet3
    If you want to decline a request you simply ignore it or alternatively type
    /decline LittleOwlet3

    Absolutely love this idea. We had an accident in the long-ago past where one of our members clicked Accept on the wrong name, which led to a base being destroyed. I know people have had similar situations fairly often.

    Like Blaine said, the format of this command would probably not be so simple as "/accept Name", but even so, if there's some way to implement a command like this, I'd love it!

  6. i think the /accept Name would be a good but simple way to achieve this and just remove the link

  7. WBlaine is right i believe. The only command a non opped player can use to send values is the trigger one which allows setting a value on the score board.

  8. Edited 6 years ago by onionpaste

    @WBlaine

    Actually, though it's "impossible", so to speak, to have custom commands, I know a way you could offer custom commands without altering the jar file at all.

    I'm not too well versed on ASM class transformers, as I only started programming with them a few weeks ago, but I believe you could inject classes into a certain runtime instance using these and modify existing opcodes and instructions. I'm very familiar with Java bytecode, so if @CraftyMyner you decide to do this, I could help if needed.

    If the objectweb2 ASM library doesn't have the functionality to do this, however, I think it's possible to use a lower level language like C / C++ with the JNI to inject bytecode into loaded classes.

    Anyway, you would just need to transform the channel reader pipeline class, inject code at the beginning of channelRead0, and you would have custom commands without modifying the jar itself, since the transformation will happen from an external codebase.

    -Stone__Warrior :)

    im surprised the command-y vanilla servers don't do this

    Edit: Upon further research, it appears that you can use the ow2 asm library if you use the -javaagent option in your ProcessBuilder call (if you're using Java to do the panel / server starter).

    http://javahowto.blogspot.in/2006/07/javaagent-option.html

  9. Edited 6 years ago by CraftyMyner

    @Stone__Warrior @WBlaine

    Actually, though it's "impossible", so to speak, to have custom commands, I know a way you could offer custom commands without altering the jar file at all.

    I'm not too well versed on ASM class transformers, as I only started programming with them a few weeks ago, but I believe you could inject classes into a certain runtime instance using these and modify existing opcodes and instructions. I'm very familiar with Java bytecode, so if @CraftyMyner you decide to do this, I could help if needed.

    If the objectweb2 ASM library doesn't have the functionality to do this, however, I think it's possible to use a lower level language like C / C++ with the JNI to inject bytecode into loaded classes.

    Anyway, you would just need to transform the channel reader pipeline class, inject code at the beginning of channelRead0, and you would have custom commands without modifying the jar itself, since the transformation will happen from an external codebase.

    -Stone__Warrior :)

    im surprised the command-y vanilla servers don't do this

    Edit: Upon further research, it appears that you can use the ow2 asm library if you use the -javaagent option in your ProcessBuilder call (if you're using Java to do the panel / server starter).

    I would argue that this would be considered modifying the jar as you are manipulating the bytecode in the running process. A much easier way to do this would be to just use some front-end proxy that parses all the incoming and outgoing packets. There is already quite of few of proxies these out there with api's to manage chat commands and other packets. My issue with these is that they add some level of lag to your connection as well as an update from mojang could render the system completely useless requiring a lot of work to fix. Not to mention the stretch it would be calling it vanilla.

    There might be an in-game method to fix the issue of accidental tp. TPA's could have their timeouts reduced so that scrolling up in chat would not put you at risk of clicking someone's tpa request. A secondary confirm message could be added, forcing the user to confirm each tp.

    There are also panel ways to deal with the tpa issue like making the tpa use ".tp <player>" and ".accept" but I'm not sure how this would go over.

  10. Edited 6 years ago by javonjw

    @CraftyMyner the secondary confirm message sounds cool if that is easier to do then the tp <player>" and ".accept"

  11. I would think both could be done easily, I just don't know how spammy it would be.

  12. Personally, I find it rather annoying seeing other people's tp activity in chat. One minor issue is if you are trying to be sneaky with who you tp to (like an alt, etc), the public info makes that impossible. This is assuming the . commands would show up in public chat and then be parsed. I think a secondary confirmation message would certainly be a reasonable approach.

  13. maybe a /trigger TPaccept <id> so you would have to type the id of who wanted to be tped

  14. but I think that if you can input an id number to check it you might as well send the username itself and even if there's a problem sending strings you can easily convert the IGNs into numbers

  15. Edited 6 years ago by HaloNest

    ^

  16. You can only trigger integers/numbers, having to type out a command to confirm would be very confusing for new players. It would require 2 lookups of the already hard to find id list.

  17. @alarmgv12 but I think that if you can input an id number to check it you might as well send the username itself and even if there's a problem sending strings you can easily convert the IGNs into numbers

    Please tell me how you can easily convert igns to numbers

  18. Edited 6 years ago by SharpSerac

    I think the system is fine how it is. If you don't want to tp someone in, just let the request time out

    Or just add a confirmation on accepting

  19. @crafty oh, now that I think of it I don't know how it works with command blocks but if you can use some kind of conversion of a char to say its ASCII value you can create a number that will consist of all the ASCII values, or you don't even need ASCII, you might just be able to make sort of a Base64 of your own with every letter from a-z, A-Z and '_'. That would be easy af to do with code, but I didn't think of it in a vanilla command-block way

  20. Edited 6 years ago by Cileklim

    In my opinion a second confirmation message is a good idea. Although it is probably harder to implement, having our own list of players that can teleport to us would be even better!

  21. Newer ›

or Sign Up to reply!