+
diff --git a/BotWindow/proxymbotwin.js b/BotWindow/proxymbotwin.js
index a590ab5..de639f4 100644
--- a/BotWindow/proxymbotwin.js
+++ b/BotWindow/proxymbotwin.js
@@ -10,10 +10,12 @@ var proxies = store.get('proxies');
const proxyFile = fs.readFileSync(proxies.path).toString().split(/\r?\n/)
let joindata = "";
let botlist = [];
+let proxyType = 0;
execmd.setMaxListeners(0)
ipcRenderer.on('startbotmulti', (e, data) => {
joindata = data
+ proxyType = data.proxyType
if(accounts) {startaccountfile()} else {startmultibot()}
setInterval(() => {
document.getElementById('botCount').innerHTML = document.getElementById('joinedAccList').getElementsByTagName("li").length
@@ -26,28 +28,28 @@ function newBot(options) {
const proxyPort = proxyFile[rnd].split(':')[1]
const bot = mineflayer.createBot({
- connect: client => {
+ connect: client => {
socks.createConnection({
proxy: {
host: proxyHost,
port: parseInt(proxyPort),
- type: options.proxyType
+ type: parseInt(proxyType)
},
command: 'connect',
destination: {
host: options.host,
- port: options.port
+ port: parseInt(options.port ? options.port : 25565)
}
}, (err, info) => {
if (err) {
- sendlog(`[ProxyError] ${proxyHost}:${proxyPort} [${options.username}] ${err}`, "red")
+ sendlog(`[ProxyError]-> [${options.username}]-> [${proxyHost}:${proxyPort}]-> ${err}`, "red")
return;
}
client.setSocket(info.socket);
client.emit('connect')
})
},
- agent: new ProxyAgent({ protocol: `socks5`, host: proxyHost, port: proxyPort }),
+ agent: new ProxyAgent({ protocol: `socks${proxyType}`, host: proxyHost, port: proxyPort }),
username: options.username,
password: options.password,
auth: options.auth,
@@ -238,29 +240,16 @@ function newBot(options) {
}, document.getElementById('atkdel').value);
})
document.getElementById('kaMobs').addEventListener('change', () => {
- var kaBtn = document.getElementById("kaMobs");
- if (kaBtn.checked == false) return;
- var kaMobs = setInterval(() => {
- if (kaBtn.checked == false) clearInterval(kaMobs);
- const entity = bot.nearestEntity(e => e.kind === 'Hostile mobs')
- if (entity && entity.position.distanceTo(bot.entity.position) < document.getElementById('atkrng').value) {
- if (document.getElementById('kaLook').checked) bot.lookAt(entity.position.offset(0, entity.height, 0), true)
- bot.attack(entity)
- }
- }, document.getElementById('atkdel').value);
- })
- document.getElementById('kaAnimal').addEventListener('change', () => {
- var kaBtn = document.getElementById("kaAnimal");
- if (kaBtn.checked == false) return;
- var kaAnimal = setInterval(() => {
- if (kaBtn.checked == false) clearInterval(kaAnimal);
- const entity = bot.nearestEntity(e => e.kind === 'Passive mobs')
- if (entity && entity.position.distanceTo(bot.entity.position) < document.getElementById('atkrng').value) {
- if (document.getElementById('kaLook').checked) bot.lookAt(entity.position.offset(0, entity.height, 0), true)
- bot.attack(entity)
- }
- }, document.getElementById('atkdel').value);
- })
+ var kaBtn = document.getElementById("kaMobs");
+ var kaMobs = setInterval(() => {
+ if (kaBtn.checked == false) clearInterval(kaMobs);
+ const entity = bot.nearestEntity(e => e.type === 'mob')
+ if (entity && entity.position.distanceTo(bot.entity.position) < document.getElementById('atkrng').value) {
+ if (document.getElementById('kaLook').checked) bot.lookAt(entity.position.offset(0, entity.height, 0), true)
+ bot.attack(entity)
+ }
+ }, document.getElementById('atkdel').value);
+})
//script listeners
execmd.on('chat', (o) => {bot.chat(o)});
execmd.on('activate', () => {bot.activateItem()});
diff --git a/README.md b/README.md
index 8cc6109..4402f65 100644
--- a/README.md
+++ b/README.md
@@ -10,21 +10,20 @@
# 📦 Features
- Anti-AFK
- KillAura
-- Look
-- Walk
- Inventory/Chest Clicker
- Chat
- Chat Spammer
- Anti-Anti-Spam (adds random text to bypass anti-spam)
- Hotbar Item Activator
- Auto Reconnect
-- Health & Food
- Window state (opened or closed)
- MultiMode (with account file or bot set count)
- [Scripting](#scripting)
- [Account File](#accountfile)
- [Linux Support](#linux)
-- Minecraft 1.8 - 1.18.2 support
+- [Proxy Support](#proxy) SOCKS4/SOCKS5
+- [Name Salt](#namesalt)
+- Minecraft 1.8 - 1.18.2 Support
- (ETC)
@@ -254,14 +253,41 @@ loop
📍 Click Properties.
- ![](https://cdn.discordapp.com/attachments/628195877189844996/994665015829344388/unknown.png)
-
📍 Click Permissions
- ![](https://cdn.discordapp.com/attachments/628195877189844996/994665646795280494/unknown.png)
-
📍 And enable "Allow ecexuting file as program"
- ![](https://cdn.discordapp.com/attachments/628195877189844996/994666628627308574/unknown.png)
+ 📍 Then you can run the app by double clicking on it.
+
+
+ # proxy
+
+ Proxy file must be a ` .txt ` file. And it's used in Random order
+
+ 💡 Proxy Supports SOCKS4 & SOCKS5
+
+ ⚠️ You must chose SOCKS protocol from Dashboard
+
+ 💡 Proxy File format Example
+
+ ```
+ Proxy:Port
+ Proxy:Port
+ Proxy:Port
+ ```
+
+ # namesalt
+
+ Name Salt Randomizes the name automatically!
+
+ You can put ` (SALT) ` in the name box to get 4 random letters.
+
+ 💡 Example
+
+ ```
+ (SALT)_NAME = UaiO_NAME
+ (SALT)_NAME_(SALT) = kwaW_NAME_aWad
+ (SALT)(SALT)(SALT) = UaiOaFHWHbJx
+ ```
- 📍 Then you can run the app by double clicking on it.
\ No newline at end of file
+
\ No newline at end of file
diff --git a/VERSION b/VERSION
index 7c483e8..4684374 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.7
\ No newline at end of file
+1.8
\ No newline at end of file
diff --git a/assets/CSS/style.css b/assets/CSS/style.css
index 1048f97..3107c13 100644
--- a/assets/CSS/style.css
+++ b/assets/CSS/style.css
@@ -37,6 +37,11 @@ ploxxy#6090 */
*/
+input::-webkit-outer-spin-button,
+input::-webkit-inner-spin-button {
+ -webkit-appearance: none;
+}
+
::-webkit-scrollbar {
background: #0E1525;
width: 5px;
diff --git a/assets/class/common/cfuns.js b/assets/class/common/cfuns.js
index 053d0df..b030a99 100644
--- a/assets/class/common/cfuns.js
+++ b/assets/class/common/cfuns.js
@@ -75,16 +75,32 @@ function timer(ms) {
}
//multi bot
async function startmultibot() {
- for (var i = 0; i < (joindata.count); i++) {
- var options = {
- username: `${joindata.username}_${i}`,
- host: joindata.host,
- port: joindata.port,
- version: joindata.version,
- loginMsg: joindata.loginMsg
- }
- newBot(options)
- await timer(joindata.delay)
+ if(joindata.username.includes("(SALT)")) {
+ for (var i = 0; i < (joindata.count); i++) {
+ let unm = "";
+ unm = joindata.username.replace("(SALT)", salt(4)).replace("(SALT)", salt(4)).replace("(SALT)", salt(4)).replace("(SALT)", salt(4))
+ var options = {
+ username: unm,
+ host: joindata.host,
+ port: joindata.port,
+ version: joindata.version,
+ loginMsg: joindata.loginMsg
+ }
+ newBot(options)
+ await timer(joindata.delay)
+ }
+ } else {
+ for (var i = 0; i < (joindata.count); i++) {
+ var options = {
+ username: `${joindata.username}_${i}`,
+ host: joindata.host,
+ port: joindata.port,
+ version: joindata.version,
+ loginMsg: joindata.loginMsg
+ }
+ newBot(options)
+ await timer(joindata.delay)
+ }
}
}
diff --git a/assets/class/window/Window.js b/assets/class/window/Window.js
index 0c5731b..f2f91d4 100644
--- a/assets/class/window/Window.js
+++ b/assets/class/window/Window.js
@@ -3,8 +3,8 @@ const { BrowserWindow } = require('electron')
class Window extends BrowserWindow {
constructor ({ file, h, w }) {
super({
- height: h ?? 680,
- width: w ?? 960,
+ height: h ?? 661,
+ width: w ?? 965,
resizable: false,
autoHideMenuBar: true,
show: false,
diff --git a/main.js b/main.js
index a39e397..f344d80 100644
--- a/main.js
+++ b/main.js
@@ -3,7 +3,7 @@ const { store } = require('./assets/class/common/cfuns')
const path = require('path')
const fs = require('fs')
const Window = require('./assets/class/window/Window');
-const userProxies = store.get('proxies')
+
// app ready and quit
app.whenReady().then(main);
app.on('window-all-closed', function() {
@@ -15,7 +15,7 @@ ipcMain.on('connect', (e, data) => {
if (!data.count || data.count <= 1) {
openWinSingle(data)
} else {
- if(userProxies) {
+ if(userProxies = store.get('proxies')) {
openWindowMultiPrx(data)
} else {
openWindowMulti(data)
diff --git a/package.json b/package.json
index 26f631e..ff68e36 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "trafficermc",
"author": "RattlesHyper ",
"maintainer": "RattlesHyper",
- "version": "1.7.0",
+ "version": "1.8.0",
"description": "A Minecraft botting tool with Anti-AFK, Chat spammer, Inventory/Chest manager features.",
"license": "ISC",
"main": "main.js",
diff --git a/renderer/index.html b/renderer/index.html
index 7e3aada..ea83382 100644
--- a/renderer/index.html
+++ b/renderer/index.html
@@ -37,9 +37,9 @@ TrafficerMC Dashbord