anit CHAT
# Chat anit 一个自动屏蔽《Minecraft》中文脏话,和增加IP属地的开源项目。
本插件需要装在Velocity上。前置为SignedVelocity-Proxy需要在velocity和所以1.19.1+的子服上增加
IP属地api为*xiaotuo*提供,脏话屏蔽由*Uapi提供*
使用方法
1.下载本插件,放入velocity的pluging文件夹,启动客户端
>tip
>如果你有子服的Minecraft版本在1.19.1以上需要增加[signed velocity](https://modrinth.com/plugin/signedvelocity/version/1.3.0) 插件到velocity和每个1.19.1+的子服务器。
2.将velocity配置文件“`velocity.toml“` 中“`force-key-authentication“`改为false
3.将所有子服务的配置文件“`server.properties“`中的“`enforce-secure-profile“`改为false
4.启动服务端
**更新日志**: https://github.com/cdpyx/Chatanit/commits/release
English:
# Chat Anit is an open-source project that automatically blocks Chinese profanity in Minecraft and increases IP ownership.
This plugin needs to be installed on Velocity. SignedVelocity Proxy needs to be added on velocity and all 1.19.1+sub servers
The IP locality API is provided by * xiaotuo *, and the profanity blocking is provided by * UAPI*
Usage
1. Download this plugin, place it in the velocity plugin folder, and start the client
> tip
> If you have a sub server version of Minecraft above 1.19.1, you need to add [signed velocity]( https://modrinth.com/plugin/signedvelocity/version/1.3.0 )Plug in to velocity and every 1.19.1+sub server.
2. Change the ‘force key authentication’ in the velocity configuration file ‘velocity. toml’ to false
3. Change the ‘enforce secure profile’ in the ‘server. properties’ configuration file for all sub services to false
4. Start the server
**Update log**: https://github.com/cdpyx/Chatanit/commits/release
Ancient-Backup
# 🛡️ Ancient-Backup
**The most advanced backup solution for Minecraft servers**
[](https://modrinth.com/plugin/ancient-backup)
[](https://modrinth.com/plugin/ancient-backup)
[](LICENSE)
—
## ✨ Features
### 🚀 **High-Performance Compression**
– **ZSTD Compression**: 3-5x faster than traditional ZIP with better compression ratios
– **Adjustable Levels**: Balance between speed and file size (0-9)
– **Streaming Mode**: Compress and upload simultaneously with zero local disk usage
### 📤 **Multiple Upload Destinations**
– **SFTP** – Secure FTP with SSH encryption (recommended)
– **FTPS** – FTP over TLS/SSL
– **OneDrive/SharePoint** – Microsoft Graph API integration
– **Google Drive** – Direct cloud upload support
### 🔄 **Smart Upload Management**
– **Parallel Uploads**: Upload to multiple destinations simultaneously
– **Resume Support**: Automatically resume interrupted uploads (SFTP/FTPS)
– **Adaptive Throttling**: Reduces backup speed if server TPS drops to prevent lag
– **Upload Retry**: Manual `/abackup uploadlast` command to retry failed uploads
### 📊 **Real-Time Progress Tracking**
– **Live Console Output**: See compression and upload progress every 5 seconds
– **Discord Webhooks**: Beautiful embeds with progress bars and statistics
– **Speed Monitoring**: Real-time MB/s tracking for uploads and compression
### 🎯 **Advanced Features**
– **File Exclusions**: Skip large folders like dynmap tiles or BlueMap renders using glob patterns
– **Automatic Retention**: Keep only the last N backups on remote servers
– **Flexible Scheduling**: Run backups every X minutes or at specific times daily
– **World Save Safety**: Automatically disables auto-save during backups to prevent corruption
– **Memory Management**: Automatic RAM cleanup after backups complete
– **Staff Notifications**: In-game notifications for players with permission
### 🔒 **Security & Reliability**
– **Strict Host Key Checking**: Verify SFTP server fingerprints to prevent MITM attacks
– **SSH Key Authentication**: Use private keys instead of passwords
– **TLS/SSL Support**: Encrypted connections for FTPS
– **Cancellable Backups**: Stop backups mid-process with `/abackup cancel`
—
## 📋 Requirements
– **Server Software**: Paper/Spigot/Bukkit 1.20.6+
– **Java**: 21 or higher
– **Permissions**: `ancientbackup.admin` for commands, `ancientbackup.notify` for notifications
—
## 🚀 Quick Start
### Installation
1. Download the latest version from Modrinth
2. Place the JAR file in your `plugins/` folder
3. Restart your server
4. Configure `plugins/Ancient-Backup/config.yml`
### Basic Configuration
“`yaml
backup:
use-zstd: true # Enable ZSTD compression (recommended)
zip-level: 1 # 1 = fast, 9 = smallest file
schedule:
enabled: true # Enable automatic backups
every-minutes: 360 # Backup every 6 hours
upload:
sftp:
enabled: true
host: “your-server.com”
port: 22
username: “backup-user”
password: “your-password”
remote-folder: “/backups/minecraft”
“`
### First Backup
Run your first backup with:
“`
/abackup start
“`
Check status with:
“`
/abackup status
“`
—
## 📦 Commands
| Command | Permission | Description |
|———|———–|————-|
| `/abackup start` | `ancientbackup.admin` | Start a new backup |
| `/abackup cancel` | `ancientbackup.admin` | Cancel the running backup |
| `/abackup status` | `ancientbackup.admin` | Check backup progress |
| `/abackup uploadlast` | `ancientbackup.admin` | Retry uploading the last backup |
| `/abackup reload` | `ancientbackup.admin` | Reload configuration |
—
## 🎨 Discord Integration
Get beautiful real-time updates in Discord:
“`yaml
discord:
enabled: true
webhook-url: “https://discord.com/api/webhooks/…”
notifications:
on-backup-start: true
on-zip-complete: true
on-upload-start: true
on-upload-complete: true
on-backup-complete: true
“`
**Features:**
– 📊 Color-coded embeds for different phases
– 📈 Visual progress bars
– ⚡ Real-time speed and ETA
– 🎯 Step-by-step progress tracking (1/5, 2/5, etc.)
—
## ⚙️ Advanced Configuration
### File Exclusions
Exclude large folders to reduce backup size:
“`yaml
backup:
exclude:
– “logs/*.gz”
– “logs/*.log.*”
– “plugins/dynmap/web/tiles/**”
– “plugins/BlueMap/web/**”
– “**/cache/**”
“`
### Streaming Mode
Compress and upload simultaneously (no local file):
“`yaml
upload:
streaming-compression: true # Requires SFTP or FTPS
“`
**Benefits:**
– ⚡ Faster overall backup time
– 💾 No local disk space usage
– 🔄 Real-time progress updates
**Limitations:**
– ⚠️ Retention policies not supported in streaming mode
– 📍 Requires SFTP or FTPS destination
### Performance Tuning
Optimize for your server:
“`yaml
performance:
max-memory-mb: 512 # Maximum RAM usage
max-buffer-kb: 8192 # Buffer size for compression
gc-after-zip: true # Free memory after compression
cleanup-after-backup: true # Full memory cleanup
tps-threshold: 18.0 # Slow down if TPS drops below this
“`
### Retention Policies
Automatically delete old backups:
“`yaml
retention:
enabled: true
keep-last: 7 # Keep only the last 7 backups
filename-prefix: “backup-” # Filter files by prefix
filename-suffix: “.tar.zst” # Filter files by extension
“`
—
## 🔐 SSH Key Authentication
For enhanced security, use SSH keys instead of passwords:
1. Generate an SSH key:
“`bash
ssh-keygen -t ed25519 -f ~/.ssh/minecraft_backup
“`
2. Add the public key to your server:
“`bash
ssh-copy-id -i ~/.ssh/minecraft_backup.pub user@your-server.com
“`
3. Configure Ancient-Backup:
“`yaml
sftp:
private-key-path: “plugins/Ancient-Backup/minecraft_backup”
password: “” # Leave empty when using key auth
“`
—
## 📊 Performance
### Benchmark Results
Tested on a 10GB Minecraft server with Paper 1.21.10:
| Method | Time | CPU Usage | Disk I/O |
|——–|——|———–|———-|
| **ZSTD Level 1** | 2m 15s | Low | Minimal |
| **ZIP Level 1** | 6m 30s | Medium | Medium |
| **ZIP Level 9** | 12m 45s | High | High |
**Streaming Mode:** Reduces total backup time by 30-40% compared to traditional mode.
—
## 🐛 Troubleshooting
### No progress output?
– Ensure you’re using the latest version
– Check that your upload destination is properly configured
– Look for error messages in the console
### Upload fails?
– Use `/abackup uploadlast` to retry
– Check network connectivity and credentials
– Enable debug logging in config.yml
### Server lags during backup?
– Lower `performance.max-buffer-kb` to reduce memory usage
– Reduce `backup.zip-level` to use less CPU
– Set `performance.tps-threshold` higher to trigger throttling sooner
### Discord notifications not working?
– Verify webhook URL is correct
– Test webhook manually using curl or online tools
– Check that `discord.enabled: true`
—
## 🤝 Support
– **Issues**: [GitHub Issues](https://github.com/yourusername/ancient-backup/issues)
– **Discord**: Join our [Discord Server](https://discord.gg/yourserver)
– **Documentation**: [Wiki](https://github.com/yourusername/ancient-backup/wiki)
—
## 📝 License
This plugin is released under the MIT License. See [LICENSE](LICENSE) for details.
—
## ⭐ Support the Project
If you find Ancient-Backup useful, please consider:
– ⭐ Starring the project on [GitHub](https://github.com/yourusername/ancient-backup)
– 📢 Sharing it with other server owners
– 💬 Leaving a review on Modrinth
– ☕ [Supporting development](https://ko-fi.com/yourname)
—
**Made with ❤️ for the Minecraft community**
Alternate Current
Alternate Current is an efficient and non-locational redstone dust implementation. Its main focus lies in reducing the lag caused by redstone dust, by optimizing the power calculations and reducing the number of shape and block updates emitted. As a side effect of these changes the block update order of redstone dust networks is predictable and intuitive rather than locational and chaotic.
### Performance
MSPT contributions of redstone dust are up to 30 times lower with Alternate Current, all the while maintaining a high level of Vanilla parity. Its low number of code modifications make it minimally invasive, so it’s an easy drop-in replacement for Vanilla redstone dust.
Check out the [GitHub page](https://github.com/SpaceWalkerRS/alternate-current/blob/main/README.md) for a detailed explanation of Alternate Current’s improvements.
## Why is redstone dust so laggy?
There are two main reasons why redstone dust is laggy: unnecessary updates and unnecessary calculations, both of which are caused by the fact that redstone dust updates recursively. A redstone wire can update its power level over half a dozen times before settling on the final value, doing expensive calculations and emitting copious amounts of shape and block updates each time. On top of that, many shape and block updates are completely redundant.
## How does Alternate Current fix that?
Alternate Current fixes these issues by doing power calculations of the entire network before updating the power levels. Each wire will check power from non-wire components just once and power from other wires just twice. Power sources within the network are identified, and the power is spread from there. This makes the calculations more efficient and the update order more intuitive. Shape and block updates are only emitted when the final power level is reached, and each wire emits no redundant updates.