No, this is not the issue here. Description packets go server to client.
Oh... fact...
If the action is defined in the button see the part of client>server packet with the enchant button(It's for 1.7.10, maybe work for 1.8... ): http://www.minecraftforge.net/wiki/Tile_Entity_Synchronization
If you make variables static, they will be the same value for all the blocks... change this...
And well here we go again: http://www.minecraftforge.net/wiki/Tile_Entity_Synchronization
Try "worldObj.markBlockForUpdate(pos);" to update the block, or markDirty(), when you close/open the GUI (or ever if it is open).
Tip: http://www.minecraftforge.net/wiki/Tile_Entity_Synchronization
Tested here.. this function cannot be used for this...
Same if trying with onLeftClickEntity()..
Probably when you hit anything you stop the sprint action.
Try a sync with onupdate call to create a "ghost sprint status" inside the sword...
example:
on update: if player is sprinting set flag to true.. if player not sprinting count 3 ticks and set flag to false.
onhit/onleftclickentity: if flag true, do more damage.
Maybe it can work...
Rendering is only client side... and inside init...
See Wuppy's tutorial about: http://www.wuppy29.com/minecraft/1-8-tutorial/updating-1-7-to-1-8-part-2-basic-items/#sthash.bOpz3XcG.dpbs