Old Optimizations

From ETM
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
  • Detect chickens on hoppers and disable constant falling
  • Entity: this.onGround = this.C && d8 < 0.0D; // kade edit this is shit
  • Skip BoundingBox checks with lastInLavaResult && !blockPositionChanged
  • Skip BoundingBox checks with lastInBlockResult blockPositionChanged
  • EntityCreature - lastFindPath AI stuff
  • EntityEnderman - antiBunker code + PathfinderGoalHurtByTarget - buker code public void e() {
  • EntityExperienceOrb - disable Mending enchantment
  • lastClimableBlockResult
  • lastFrictionFactor, blockPositionChanged
  • lastList, lastCollided
  • Entityplayer - tick container Update Delay / this.activeContainer.b();
  • EntityTrackerEntry - track - velocityChanged ( rocketboots mass spam fix)
            if (!cancelled) { // todo1.13
	            if (this.tracker instanceof EntityPlayer) { // kade edit rocketboots mass-spam fix
	                Player player = (Player) this.tracker.getBukkitEntity();
	                org.bukkit.inventory.ItemStack boots = player.getInventory().getBoots();
	                if(boots != null && boots.getType() == org.bukkit.Material.GOLDEN_BOOTS){
	                    if (this.tracker instanceof EntityPlayer) {
	                        ((EntityPlayer) this.tracker).playerConnection.sendPacket(new PacketPlayOutEntityVelocity(this.tracker));
	                    }
	                    cancelled = true; // fake cancelled to not broadcast two lines below
	                }
	            }
            }
            
            if (!cancelled) { 
                this.broadcastIncludingSelf(new PacketPlayOutEntityVelocity(this.tracker));
            }
  • ItemSkullPlayer fixMobHeadTag
    // Mob-Head-Tag-Fixer kade, allow stacking and remove unneeded signature
    if(fixMobHeadTag(nbttagcompound)) return true; //kade
  • Packet Spamming
    NetworkManager -  protected void a(ChannelHandlerContext channelhandlercontext, Packet<?> packet) throws Exception {
    
    
    	// kade edit: This prevents packet-spamming to lag the server todo1.13	
        public int lastPacketPlayInBlockPlace = 0; //kade 
        private long packetCount = 0;
        private long lastPacketTick = MinecraftServer.currentTick;
        protected void a(ChannelHandlerContext channelhandlercontext, Packet<?> packet) throws Exception {
    		ServerConnection.packetCount++; // kade
    		packetCount++; //kade
    
        	if(MinecraftServer.currentTick > lastPacketTick  + 40){ //kade
        		lastPacketTick = MinecraftServer.currentTick;
        		packetCount = 0;
        	}
        	
    
    //    	if(packet instanceof PacketPlayInCustomPayload) {
    //    		PacketPlayInCustomPayload pp = (PacketPlayInCustomPayload) packet;
    //    		System.out.println(pp);
    //    		System.out.println(pp.a());
    //    	}
        	
    		if (packetCount > 1000){ //kade
    			close(new ChatMessage("disconnect.spam", new Object[0]));
    			OutputHelper.error("Kicking player for packetSpam");
    			return;
    		}
    		
    		if (packet instanceof PacketPlayInBlockPlace) { // kade
    			lastPacketPlayInBlockPlace = 40;
    		}
    		if (lastPacketPlayInBlockPlace > 0) lastPacketPlayInBlockPlace--; // kade
    
            if (this.channel.isOpen()) {
                try {
                    a(packet, this.m);
                } catch (CancelledPacketHandleException cancelledpackethandleexception) {
                    ;
                }
    
                ++this.q;
            }
    
        }
  • PlayerConnection - horse running
                    double movedWronglyThreshold = org.spigotmc.SpigotConfig.movedWronglyThreshold; //kade
                    if(!(entity instanceof EntityPlayer)){ //kade edit fixes buggy stairs-running with horses
                    	movedWronglyThreshold *= 1.5f;
                    }
                    
                    if (d10 > movedWronglyThreshold) { // Spigot
                        flag1 = true;
                        PlayerConnection.LOGGER.warn("{} moved wrongly!", entity.getDisplayName().getString());
                    }
  • Limit Elytra speed to prevent mass chunk loading
    // if(distance > 1.30d){
    // this.player.motX *= 0.75d;
  • Possibly limit enchantment levels again if bugged as in 1.9
    int level = getEnchantmentLevel(Enchantments.LURE, itemstack);
    if(level > 3) level = 3; // kade fix max fortune, luck, loot bonus 3 // 1.9
  • Limit PathfinderGoalMeleeAttack lookups lastLocalPathEntityLookup (zombie hordes lag / villager targeting farm lag)