zSpigot is a 1.7.10 Paper Spigot Fork which I worked up on a time. I was added so much features and optimization on this product.
As Developer, if you guys want the most stable version and you guys bought the plugin, download 1.2.1 Version is your best choice.
Cannot pay that much? or think price is unfair? Click here for discuss.
Welcome to join my Discord Server for more services: https://discord.gg/3xHvC6H
If you guys want to buy source, 45$ with no updates and 70$ with updates. If you bought this resource also I will subtract the price by the price you bought on this resource. Anyways, contact me via PM.
- Pearl cross through String and Fence Gate
- iHCF Support
- Option to disable Mob-AI & Entity Activation
- Options for do not tick non-player entities & do not spawn non-player entities when there is no player
- Options for do not make redstone applying physics.
- Enhanced Falling Block with Client-Sided FPS Enhancements
- TNT Explosion with Client-Sided FPS Enhance
- Knockback & Fast Pot Command in Game
- TCPNoDelay Enabled (Better Ping & Connection)
- Implemented Fast-Math Library & Applying it to nearly everything in minecraft server and craftbukkit used Math (Replacing Java Original Math and Improve Performances)
- Implemented Common-Utils Library
- Custom Knockback & Smooth Default Edition
- Knockback Friction Support & Friction Values
- Toggle-able Knockback Friction
- Multi-Knockback Profiles Support
- Multi-Threaded for some unimportant functions (Reduce Lag)
- Timings V2 in 1.7.10.
- Packet Listener & Interceptor Implemented
- Fancy Message & Google Gson Implemented (Json Message)
- Options to Remove /plugin Command Entirely
- Non-Flicker Scoreboard + 48 Characters Support (NFScoreboard.class)
- Block Hit Glitch Fixed
- Extended Events (PlayerGainOperatorEvent + PlayerLostOperatorEvent, PlayerFlyEvent, ServerReloadEvent)
- ServerListPingEvent is cancellable (Player will not able to ping the server if event was cancelled)
- Custom TPS Message + Custom Help Message
- Fast Block Settler + Easy Tab Header & Footer API
- API to verify player is using premium client (Not Stable)
- Player Instance Extended More Method. (Ex. player.getPing(), player.getProtocolVersion()... etc.)
- Async Potion Throwing.
- Option to Optimize the Server (In Option.yml)
- Custom Timing System, Create Simple Countdown Timer without Wasting Bukkit Thread!
- Dangerous Enderman Options.
- Developer Friendly (API Integrated)
- Buy the product.
- Drag it into your server folder and start it for once. (Until you see the options.yml was generated)
- PM me to get one license key (Otherwise the server won't start). Insert your key into Options.yml and restart the server.
- (Optional) I recommend to use the script I wrote in the zip file for best performance and garbage collector.
- (Optional) Replace your original paper.yml, spigot.yml and bukkit.yml to the file that was included in zip file. [Better Game Performance]
- Everything was settled up!
- create <name> | Create a knockback profile
- remove <name> | Remove a knockback profile
- setdefault <name> <boolean> | Set a Knockback Profile as default value when player knocked each other
- setallowfriction <name> <boolean> | Set allowed to have friction when player knocked each other
- setfrictionvalue <name> <double> | Set knockback profile friction
- sethorizontal <name> <double> | Set knockback multiplier on ground with horizontal.
- setvertical <name> <double> | Set knockback multiplier on ground with vertical.
- setairhorizontal <name> <double> | Set knockback multiplier on air with horizontal.
- setairvertical <name> <double> | Set knockback multiplier on air with vertical.
- getloaded | Get loaded knockback profiles by server
- info <name> | Get knockback profile info
- test <name> | Test the Knockback Profile
- bindprofile <name> <player> | Bind the specific profile to specific player through command.
- <player> | Check player's ip address
- <url> | Set server's motd image to specific image with url [64 x 64 Pixel]
- Check your server's bench mark.
- <player> | Check <player>'s ping.
- Check your ping.
- setspeed <double> | Set Fastpot Potion Speed
- setdistance <double> | Set Fastpot Distance
- setoffy <double> | Set Fastpot Off Y
Code:
# This is the main extra messages file for zSpigot
config-version: 1
HelpMessages:
- '&b&l----------'
- '&bHelp Here'
- '&b&l----------'
TPSMessages:
- '&b&l&m------------------------------'
- '&bTPS from last 1m, 5m, 15m: %tps%'
- '&b&l&m------------------------------'
PingMessages:
- '&b&l&m------------------------------'
- '&b%player%''s Ping: %ping%'
- '&b&l&m------------------------------'
Code:
# This is the main extra options file for zSpigot
config-version: 1
settings:
optimizer:
#Select it to false to disable redstone applying physics
disable-physics-for-red-stone: false
#Select it to true to get Client Sided TNT (Improve FPS Performance)
optimizetnt: true
#Select it to false to prevent BlockPhysicsEvent from being fired (Improve Performance)
apply-physics: true
#Select it to true to disable any other mob AI
disable-mob-ai: false
#Select it to true to prevent glitch of player movement. Select it to false to get better server performance.
better-move: false
#Select it to true to get Async Scoreboard Creation & Update
async-scoreboard-update: false
#Select it to true to disable Entity Activation
disable-mob-tracking: false
#Select it to true to make Unsafe Async Warning not reporting
avoid-async-catcher: false
#Select it to true to make furnace not loading chunks if it's empty
prevent-furnace-loading-chunks: true
#Select it to true to prevent PlayerMoveEvent from being fired (Improve Performance)
disable-player-movement: false
#Select it to true to make falling block Client-Sided (Improve FPS Performance)
optimize-falling-block: false
#Select it to true to make entity not spawning in world if the world has no player (Optimize World)
disable-non-player-entity-spawning-when-no-player: true
#Select it to true to make Chest & Hoppers won't be ticked in World (Improve TPS)
dont-tick-chest-and-hoppers: true
#The max walk speed allowed in server
max-walk-speed: 1.0
#The enderman target searching range
enderman-target-searching-range: 64.0
#Select it to false to make attack also sprinting (Better PVP)
attack-cancel-sprint: true
#Select it to false to make enderman still can attack you even you wearing pumpkin
pumpkin-hide-from-enderman: true
#Select it to true to remove /plugins command entirely
disablepluginscommand: false
#Coming Sooon
disablevanishactions: false
#Fast Pot
potion:
#Potion Speed
speed: 1.0
#Potion Off Y
offY: -20.0
#Potion Distance
distance: 0.5
inittps: 20
#Your License Key
License-Key: 'License Key Here'
Code:
# This is the knockback configuration file for zSpigot.
knockbacks:
Test:
name: Test
horizontal: 1.0
vertical: 1.0
airHorizontal: 1.0
airVertical: 1.1
default: false
friction: false
frictionvalue: 1.0
Test2:
name: Test2
horizontal: 1.0
vertical: 1.0
airHorizontal: 1.0
airVertical: 1.1
default: false
friction: false
frictionvalue: 1.0
Test3:
name: Test3
horizontal: 1.0
vertical: 1.0
airHorizontal: 1.0
airVertical: 1.1
default: false
friction: false
frictionvalue: 1.0
(Bench Mark Command)
(Knockback Command)
(Version Command)
(TNT Explosion TPS Screenshot [I Put 29000+ TNT Blocks and Fire it, my client crashed during explosion but console works fine and I checked TPS, none was lower than 19.7, when I relogin there is also some tnt is still exploding but tps also suspend at 19.92-19.95.)
(1.7.10 zSpigot | Timings V2 System. I opened up the timings during exploding TNT Sphere within Radius of 10)
(Ping Command)
- Packet Wrapper (Send Packet Simply) | Progess - 10%
- More Optimizations
- 1.8.8 Taco Spigot Fork
- Your Ideas..
Code:
package top.potl.examples;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scoreboard.DisplaySlot;
import org.junit.Test;
import top.potl.events.PlayerFlyEvent;
import top.potl.events.PlayerGainOperatorEvent;
import top.potl.events.PlayerLostOperatorEvent;
import top.potl.knockback.Knockback;
import top.potl.packet.PacketType;
import top.potl.packet.event.PacketHandleEvent;
import top.potl.scoreboard.NFScoreboard;
import top.potl.timer.CountdownTimer;
import top.potl.timer.ManualTimer;
public class Example {
@Test
public void Legacy(Player player) {
if (player.isLegacyClient()) {
player.sendMessage("Legacy Client.");
} else {
player.sendMessage("Non-Legacy Client.");
}
}
@Test
public void Ping(Player player) {
player.sendMessage("Your Ping: " + player.getPing());
}
@Test
public void setKnockbackProfile(Player player, String profile) {
Knockback knockback = Bukkit.getKnockbackManager().getKnockbackProfiles().get(profile);
player.setKnockback(knockback);
player.sendMessage("Your knockback status: " + knockback.getX() + "," + knockback.getY() + "," + knockback.getZ());
}
@Test
public void sendKnockbackName(Player player) {
try {
player.sendMessage(player.getKnockback().getName());
} catch (NullPointerException notfound) {
player.sendMessage("Undefined.");
}
}
@Test
public void clearKnockbackProfile(Player player) {
player.setKnockback(null);
}
@Test //This method maybe have a little blink when player's ping is little bit high or server tps is too low.
public void sendNonFlickerScoreboard(final Player player) {
final NFScoreboard board = new NFScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
new BukkitRunnable() {
public void run() {
board.setTitle(player.getName());
board.setDisplaySlot(DisplaySlot.SIDEBAR);
board.setValue(15, "&bScoreboard");
board.setValue(14, "&748 Entries");
}
}.runTaskTimerAsynchronously(JavaPlugin.getPlugin(JavaPlugin.class), 0L, 1L); //JavaPlugin.getPlugin(JavaPlugin.class) replace to your plugin instance.
player.setScoreboard(board.getScoreboard());
}
@Test
public void setBlock(Location loc) {
long before = System.currentTimeMillis();
Bukkit.getFastBlockSettler().setBlockFast(loc, Material.AIR);
long after = System.currentTimeMillis();
System.out.println("Settled Block in " + (after - before) + "ms.");
}
@Test
public void onPacket(PacketHandleEvent event) {
System.out.println("Receiver: " + event.getPlayer().getName());
System.out.println("Packet Class: " + event.getPacket().getClass().getName());
System.out.println("Channel: " + event.getChannel().getClass().getName());
System.out.println("Packet Type: " + (event.getType() == PacketType.SERVER_BOUND ? "Server" : "Client")); //Server Bound is Packet In, Client Bound is Packet Out.
//event.setCancelled(true) will cancel this packet.
}
@Test
public void onGainOp(PlayerGainOperatorEvent event) {
System.out.println("Player " + event.getPlayer() + " received OP!");
event.setCancelled(true); //Makes player no longer op when they gained op.
}
@Test
public void onLostOp(PlayerLostOperatorEvent event) {
System.out.println("Player " + event.getPlayer() + " lost OP!");
event.setCancelled(true); //Makes player still have op when they lost op.
}
@Test
public void onMove(PlayerMoveEvent event) {
System.out.println("Cancelling PlayerMoveEvent...");
event.setCancelled(true); // This effected as same as event.setTo(event.getFrom());
}
@Test
public void onFly(PlayerFlyEvent event) {
System.out.println("Player " + event.getPlayer().getName() + "is trying to fly!");
event.setCancelled(true); //Cancel the fly and make player fall down.
}
@Test
public void sendTabHeaderAndFooter(Player player, String header, String footer) {
Bukkit.getTabHandler().setFooter(player, footer);
Bukkit.getTabHandler().setHeader(player, header);
}
@Test
public void setCountdownTimer(long end) {
ManualTimer timer = new ManualTimer(false);
timer.setTimerEnd(end);
System.out.println(timer.toString(true));
}
public void sendBedPacket(Player player) {
WrapperPacketOutBed bed = new WrapperPacketOutBed();
EntityPlayer ep = ((CraftPlayer) player).getHandle();
bed.setEntityId(ep.getBukkitEntity().getEntityId());
bed.setEntity(ep);
bed.setX((int) player.getLocation().getX());
bed.setY((int) player.getLocation().getY());
bed.setZ((int) player.getLocation().getZ());
bed.send(player);
}
}
mitw.rip (Taiwan Server)
mc.ecuacraft.com (Spanish Server)
Mile Stone:
5 Purchases √
10 Purchases √
20 Purchases √
40 Purchases × - Publish for ySpigot (1.8.8 PaperSpigot Fork)
80 Purchases ×
100 Purchases ×
Proof of Owner Ship:
You guys can purchase right here -> https://www.mc-market.org/resources/7198/
Last edited:
