Player dropped 871 items in 1 minute

Discussion in 'Spigot Help' started by Bobcat00, May 22, 2016.

  1. So a new player joined my server, went to the creative/plot world, then proceeded to drop 871 items in just 61 seconds. The items were of various types: blocks, flowers, dispensers, etc., and all had custom names.

    So how did he do this? A hacked client?

    EDIT: fixed typo.
     
    #1 Bobcat00, May 22, 2016
    Last edited: May 22, 2016
  2. probably a hacked client, but it might be custom, never seen that happen before.
     
  3. I have seen a couple hacked clients doing this, they rename the items to a load of characters and colors and then drop them all.
    An example of this hacked client is Cicada 3.0.
    Probably done to lag the server.
     
  4. Mikgreg

    Supporter

    Hacked client. Easily combatted by limiting the amount of entities that can exist in any one chunk.
     
  5. That didn't lag the server. But now someone else placed over 1800 TNT minecarts, and that actually crashed the server. Both players have been banned.
     
  6. Where are players getting 1800 tnt minecarts? Are you using some sort of reduced-security server, or creative mode? Renaming objects should not be possible even with creative perms..
     
  7. Splazeing

    Supporter

    read the posts above, hack clients.
     
  8. This was in a creative (PlotMe) world.
     
  9. Makes sense now.

    Hack clients cant magically create items, the server will say "lol nope".
     
    • Optimistic Optimistic x 1
  10. But hacked clients can place items faster than a human can, right?

    He placed 2067 TNT minecarts in approx. 10 minutes.
     
  11. Very easy, all it takes is spamming packets in a loop, it could place thousands per second, connection speed allowing.
    In fact it would be easy to write a spam-limiter that simply keeps track of how many block interactions, item drops, item moves ect a player does per minute.
     
  12. Can do.
    I'll upload a video proving so.
     
    • Agree Agree x 1
  13. Here is a video of what the person dropping items could've done.

    I have the code for these mods:
    Code (Text):

    package cicada.mods.creative;

    import cicada.mods.*;
    import net.minecraft.item.*;
    import com.google.common.collect.*;
    import java.util.*;
    import cicada.event.events.*;
    import cicada.util.*;
    import java.security.*;
    import java.math.*;
    import net.minecraft.network.*;
    import net.minecraft.network.play.client.*;

    public class AutoItem extends ModBase
    {
      public AutoItem() {
      super("AutoItem", 0, ModType.CREATIVE, true);
      this.addOption(new Option("RandomName", true));
      this.addOption(new Option("RainbowColor", true));
      }
       
      private ItemStack getRandomItem() {
      final Random random = new Random();
      final ArrayList arrayList = Lists.newArrayList(Item.itemRegistry.iterator());
      final int n = 0;
      return new ItemStack(arrayList.get(random.nextInt(arrayList.size() - 1 - n) + n));
      }
       
      private String getRandomCharacter() {
      final char c = (char)(new Random().nextInt(26) + 97);
      if (c >= 'a' && c <= 'z') {
      return Character.toString(c);
      }
      return null;
      }
       
      private String getRandomString() {
      final Random random = new Random();
      final int n = 0;
      return String.valueOf(random.nextInt(10 - n) + n);
      }
       
      private void onTick(final EventUpdate2 eventUpdate2) {
      if (!Wrapper.getMinecraft().playerController.isInCreativeMode()) {
      return;
      }
      for (int i = 36; i <= 44; ++i) {
      if (getWorldClient() != null && i >= 36 && i <= 44) {
      final ItemStack randomItem = this.getRandomItem();
      String stackDisplayName2;
      final String stackDisplayName = stackDisplayName2 = new BigInteger(130, new SecureRandom()).toString(32);
      if (this.getOption("RandomName").getBooleanValue()) {
      if (this.getOption("RainbowColor").getBooleanValue()) {
      for (int j = 0; j < stackDisplayName.length(); ++j) {
      final String randomCharacter = this.getRandomCharacter();
      stackDisplayName2 = stackDisplayName2.toLowerCase().replaceAll(randomCharacter, "ยง" + this.getRandomString() + randomCharacter);
      }
      randomItem.setStackDisplayName(stackDisplayName2);
      Wrapper.sendPacket(new C17PacketCustomPayload("MC|ItemName", stackDisplayName2.getBytes()));
      }
      else {
      randomItem.setStackDisplayName(stackDisplayName);
      Wrapper.sendPacket(new C17PacketCustomPayload("MC|ItemName", stackDisplayName.getBytes()));
      }
      }
      Wrapper.getPlayer().inventoryContainer.putStackInSlot(i, randomItem);
      Wrapper.getMinecraft().getNetHandlerPlayClient().addToSendQueue(new C10PacketCreativeInventoryAction(i, randomItem));
      }
      }
      }
    }
     
    Also, for the minecarts he could of used fast interact.
     
  14. MiniDigger

    Supporter

    renember that the creative inventory is client sided.
     
    • Agree Agree x 1
  15. I have NoCheatPlus, but both of these players were dropping items / placing minecarts slower than the limits imposed by NCP.
     
  16. Err.. I think we all know Minecraft on its own is pretty lax when it comes to preventing cheaters, but with creative in particular there's a lot of stuff you can exploit that you wouldn't expect.

    Yeah, a lot of these hacks are made either configurable or with specific values based on NCP.

    If you're fishing for ways you could fix issues like this,
    • Limit entities per chunk
    • Limit item drops
    • Limit or ban certain items (like tnt minecarts, have those ever been used for a legitimate purpose anyway?)
     
  17. I see... They could've of slowed it down on purpose for NoCheatPlus not to stop them.
     
  18. Is creating hacked clients illegal? I was thinking about starting to make my own just to see if I could.
     
  19. MiniDigger

    Supporter

    no, why would it. its just a mod. Using it on some server (if not all :p) is not allowed tho.