Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
2f01e8c
v7.0: Maven build sistemine gecis ve paket yapisi
Ohualtex Jun 14, 2026
b2b0375
v7.0: saf cekirdek mantik core paketine ayrildi + ilk birim testler
Ohualtex Jun 14, 2026
fdb9267
v7.0: GitHub Actions CI eklendi (derle + test + paketle)
Ohualtex Jun 14, 2026
4d4ca1c
v7.0: surum tek-kaynak (pom -> manifest -> baslik) ve surum 7.0
Ohualtex Jun 14, 2026
baac4bf
v7.1: acil durdurma (panik) tusu ESC eklendi
Ohualtex Jun 14, 2026
d6a8667
v7.1: PC kapatma iptal penceresi (AFK uyumlu)
Ohualtex Jun 14, 2026
c2f5d79
v7.1: limit deger dogrulamasi - gecersiz/0 limitte makro baslamaz
Ohualtex Jun 14, 2026
0cb0522
v7.1: sayisal alanlarda gecersiz girdi gorsel geri bildirimi
Ohualtex Jun 14, 2026
9088d02
v7.2: config kullanici dizinine tasindi (installer uyumu)
Ohualtex Jun 14, 2026
dbdaf89
v7.2: jpackage native paket scriptleri (JRE gomulu)
Ohualtex Jun 14, 2026
87b9285
v7.2: tag-tetikli GitHub Release otomasyonu
Ohualtex Jun 14, 2026
fdc38fd
v7.3: yumusak (insan benzeri) fare hareketi
Ohualtex Jun 14, 2026
d9a58e1
v7.3: zamanlayici - gecikmeli baslat
Ohualtex Jun 14, 2026
daff388
v7.3: sistem tepsisi (tray) ikonu
Ohualtex Jun 14, 2026
1e61b1b
v7.3: per-sekme (per-makro) hotkey
Ohualtex Jun 14, 2026
b94d41c
v7.3: zincir makro JSON disa/ice aktarma
Ohualtex Jun 14, 2026
74be0ba
v7.3: profiller - birden cok kayitli ayar seti
Ohualtex Jun 14, 2026
80714eb
v7.3: record/replay - gercek girdiyi zincire kaydet
Ohualtex Jun 14, 2026
8a7670a
v7.4: tabbedPane field'a alindi, kirilgan getComponent castleri kaldi…
Ohualtex Jun 20, 2026
04630bf
v7.4: vektor ikon siniflari ui paketine tasindi
Ohualtex Jun 20, 2026
779f3c7
v7.5: Lang sozlugu i18n paketine tasindi
Ohualtex Jun 20, 2026
a6211cf
v7.5: ActionType ve MacroAction model paketine tasindi
Ohualtex Jun 20, 2026
2b2b909
v7.5: config dosya islemleri ConfigStore'a ayrildi
Ohualtex Jun 20, 2026
ca89710
v7.5: MacroEngine - 4 start metodu ortak motora indirildi (Strategy)
Ohualtex Jun 20, 2026
21d98e8
v7: README v7'ye guncellendi ve CI Node 24'e sabitlendi
Ohualtex Jun 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: build

on:
push:
branches: ['**']
pull_request:

# Node 20 deprecation uyarisini engelle: JS action'lari Node 24 ile calistir
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
cache: maven

- name: Derle + test + paketle (fat-jar)
run: mvn -B -ntp clean verify

- name: Fat-jar artifact yukle
uses: actions/upload-artifact@v4
with:
name: autoclicker-jar
path: target/autoclicker.jar
if-no-files-found: error
68 changes: 68 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: release

on:
push:
tags: ['v*']

permissions:
contents: write

# Node 20 deprecation uyarisini engelle: JS action'lari Node 24 ile calistir
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'

jobs:
release:
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
cache: maven

- name: Surum etiketi (v-onsuz)
id: ver
shell: bash
run: echo "v=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"

- name: Fat-jar derle + test
run: mvn -B -ntp clean verify

- name: jpackage app-image (JRE gomulu)
shell: bash
run: |
jpackage --type app-image --input target --main-jar autoclicker.jar \
--name AutoClicker --app-version "${{ steps.ver.outputs.v }}" --dest dist \
--java-options "-Dfile.encoding=UTF-8"

- name: app-image'i zip'le
shell: bash
run: |
cd dist
if [ "${{ runner.os }}" = "Windows" ]; then
7z a "../AutoClicker-${{ runner.os }}.zip" "AutoClicker" >/dev/null
else
zip -r "../AutoClicker-${{ runner.os }}.zip" AutoClicker* >/dev/null
fi

- name: Release'e OS paketini yukle
uses: softprops/action-gh-release@v2
with:
prerelease: true
generate_release_notes: true
files: AutoClicker-${{ runner.os }}.zip

- name: Release'e fat-jar yukle (yalnizca Linux)
if: runner.os == 'Linux'
uses: softprops/action-gh-release@v2
with:
prerelease: true
files: target/autoclicker.jar
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,14 @@ build/
out/
bin/
target/
dist/

# ────────────────────────────────────────
# Runtime config (config.properties vb.)
# ────────────────────────────────────────
*.properties
# Maven wrapper properties'i *.properties'e ragmen izlenmeli
!.mvn/wrapper/maven-wrapper.properties

# ────────────────────────────────────────
# IDE dosyaları
Expand Down
3 changes: 3 additions & 0 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
wrapperVersion=3.3.4
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
120 changes: 76 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@

**Java tabanlı · modern · çok dilli · insan benzeri davranış üreten profesyonel makro motoru.**

[![Java](https://img.shields.io/badge/Java-8%2B-orange?logo=oracle&logoColor=white)](https://www.oracle.com/java/)
[![build](https://github.com/Ohualtex/Auto_Clicker/actions/workflows/build.yml/badge.svg)](https://github.com/Ohualtex/Auto_Clicker/actions/workflows/build.yml)
[![Java](https://img.shields.io/badge/Java-21%2B-orange?logo=oracle&logoColor=white)](https://www.oracle.com/java/)
[![Build](https://img.shields.io/badge/Build-Maven-C71A36?logo=apachemaven&logoColor=white)](https://maven.apache.org/)
[![FlatLaf](https://img.shields.io/badge/UI-FlatLaf%203.4.1-blueviolet)](https://www.formdev.com/flatlaf/)
[![JNativeHook](https://img.shields.io/badge/Hook-JNativeHook%202.2.2-success)](https://github.com/kwhat/jnativehook)
[![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey)]()
Expand All @@ -17,56 +19,72 @@ Oyunları kurallarına, hayatı akışına bırakan profesyonel araca hoş geldi

---

## ⬇️ İndir (en kolay yol — Java gerekmez)

[**Releases**](https://github.com/Ohualtex/Auto_Clicker/releases/latest) sayfasından işletim sisteminize uygun paketi indirin — **JRE gömülüdür, ayrıca Java kurmanıza gerek yoktur**:

| Platform | Dosya | Çalıştırma |
|---|---|---|
| Windows | `AutoClicker-Windows.zip` | Aç → `AutoClicker\AutoClicker.exe` |
| macOS | `AutoClicker-macOS.zip` | Aç → `AutoClicker.app` |
| Linux | `AutoClicker-Linux.zip` | Aç → `AutoClicker/bin/AutoClicker` |
| Hepsi | `autoclicker.jar` | `java -jar autoclicker.jar` *(Java 21+ gerekir)* |

---

## 🌟 Öne Çıkan Özellikler

### Otomasyon Çekirdeği
- **👁️ Piksel Tarayıcı (Reaction Bot)** — Belirlediğiniz (X,Y) noktasındaki renkte **ayarlanabilir tolerans (%1–100, varsayılan %5)** ile eşleşme veya değişim yakalandığında anında: fare tıklayabilir, özel bir tuşa basabilir, uyarı zili çalabilir. Envanter yönetiminden alarm sistemlerine kadar geniş kullanım alanı.
- **🔗 Zincir Makro (Combo) Motoru** — Fare hareketi (X,Y), klavye vuruşları ve bekleme (ms) adımlarını sıralayarak sonsuz döngülü dev kombinasyonlar inşa edin.
- **🖱️ Klasik Auto-Clicker & Auto-Typer** — Sol/Sağ/Orta/Çift tıklama ve istediğiniz tuşa periyodik basma (1–100 CPS), kilitli hedef koordinat opsiyonu.
- **👁️ Piksel Tarayıcı (Reaction Bot)** — Bir (X,Y) noktasındaki renkte **ayarlanabilir tolerans (%1–100)** ile eşleşme/değişim yakalandığında: fare tıklar, özel tuşa basar veya zil çalar.
- **🔗 Zincir Makro (Combo) Motoru** — Fare hareketi, tuş ve bekleme adımlarını sıralayıp sonsuz döngülü kombinasyonlar kurun.
- **⏺️ Makro Kaydet/Oynat (Record)** — Zincir sekmesinde **● Kaydet** ile gerçek tıklama/tuş/gecikmelerinizi yakalayıp makroya dönüştürün (ESC ile durdurun).
- **🖱️ Klasik Auto-Clicker & Auto-Typer** — Sol/Sağ/Orta/Çift tıklama, tuşa periyodik basma (1–100 CPS), kilitli hedef koordinat.

### Akıllı Davranış
- **🛡️ İnsan Modu (Humanizer / Anti-Ban)** — Saniye/milisaniye komutlarına ±%15 rastgele, **organik dalgalanma** ekleyerek bot korumalarını insan olduğunuza ikna eder.
- **🛑 Akıllı Limitör (Otomatik Kapanış)** — `Dakika` veya `Döngü Sayısı` dolduğunda makroyu durdurur; isterseniz **bilgisayarı güvenli kapatma**. Windows / macOS / Linux için uygun komutu çağırır, bilinmeyen sistemde sessiz kalmaz uyarı verir.

### Kullanıcı Deneyimi
- **🌐 6 Dilde Anlık Çeviri (i18n)** — TR · EN · DE · FR · IT · RU. Dil geçişi gerçek zamanlı, yeniden başlatma yok.
- **🎨 Canlı Tema & Renk Sistemi** — FlatLaf Dark/Light tonu, metin rengi ve font boyutu çalışma esnasında değiştirilebilir.
- **ⓘ Bağlam Bilgi Butonları** — Her karmaşık ayarın yanındaki bilgi ikonu özelliği anlık açıklar (CPS, piksel koşulu, tarama hızı, anti-ban, limitör...).
- **🗃️ Global Hotkey & Otomatik Kayıt** — Tetik tuşunu serbestçe atayın (varsayılan **F6**), pencere arka planda olsa da çalışır. Tüm ayarlar, zincirler ve renk profili `config.properties` dosyasında kalıcı saklanır.
- **🛡️ İnsan Modu (Anti-Ban)** — Gecikmelere ±%15 organik dalgalanma ekler; **yumuşak (eğrisel) fare hareketi** ile ışınlanma yerine insan benzeri geçiş.
- **🛑 Akıllı Limitör + Güvenli Kapatma** — `Dakika`/`Döngü` dolunca durur; isteğe bağlı **PC kapatma** (Win/macOS/Linux'a uygun komut) — kapanış öncesi **iptal penceresi** ile geri alınabilir.
- **⏱️ Zamanlayıcı** — Makroyu N saniye gecikmeyle başlatın (geri sayımlı).

### Güvenlik & Kullanıcı Deneyimi
- **🆘 ESC Panik Tuşu** — Her zaman açık, değiştirilemez acil durdurma.
- **👤 Profiller** — Birden çok kayıtlı ayar seti (Kaydet/Yükle/Sil).
- **📤 JSON Dışa/İçe Aktarma** — Zincir makrolarını paylaşılabilir dosyaya aktarın.
- **🗂️ Sistem Tepsisi (Tray)** — Simge durumuna küçültünce tepsiye gizlenir; tepsiden başlat/durdur/çıkış.
- **⌨️ Global + Per-Sekme Hotkey** — Tek global tetik (varsayılan **F6**) veya her makro sekmesine ayrı kısayol.
- **🌐 6 Dilde Anlık Çeviri · 🎨 Canlı Tema/Renk/Font · ⓘ Bağlam Bilgi Butonları**

---

## 🧭 Sekmeler

| Sekme | Açıklama |
|---|---|
| 🖱️ **Fare** | Klasik auto-clicker. CPS slider, tıklama tipi, kilitli koordinat seçeneği. |
| 🖱️ **Fare** | Klasik auto-clicker. CPS, tıklama tipi, kilitli koordinat. |
| ⌨️ **Klavye** | Belirli bir tuşa periyodik basma. |
| 🔗 **Zincir** | Combo macro: tıklama + tuş + ışınlama + bekleme adımlarından oluşan sıralı senaryo. |
| 👁️ **Piksel** | Renk algılama tabanlı tepki botu. Eşleşme/Değişim koşulu + tolerans. |
| ⚙️ **Ayarlar** | Hotkey, dil, tema, renk, limitör konfigürasyonu. |
| 🔗 **Zincir** | Combo macro + JSON içe/dışa aktar + **kayıt (record)**. |
| 👁️ **Piksel** | Renk algılama tabanlı tepki botu (eşleşme/değişim + tolerans). |
| ⚙️ **Ayarlar** | Hotkey, per-sekme hotkey, limitör, zamanlayıcı, profil, dil, tema. |

---

## 🚀 Kurulum
## 🚀 Kaynaktan Çalıştırma / Derleme

Proje **Maven** ile derlenir; **Maven kurmanıza gerek yok** — depoyla gelen wrapper (`mvnw`) yeterli. Yalnızca **JDK 21+** gerekir.

### Gereksinimler
- **Java JDK veya JRE 8+** (minimum gereksinim; geliştirme/test JDK 25 ile yapıldı — `java -version` ile kontrol)
- Windows için `run.bat` her şeyi halleder; diğer platformlarda aşağıdaki manuel adımlar.
```bash
# Derle + test + tek-dosya (fat) jar üret
./mvnw clean package # Windows: mvnw.cmd clean package

# Çalıştır
java -jar target/autoclicker.jar
```

### Hızlı Başlangıç (Windows)
1. **`run.bat`** dosyasına çift tıklayın.
2. İlk çalıştırmada FlatLaf ve JNativeHook jar'ları PowerShell ile `lib/` altına otomatik indirilir.
3. Açılan arayüzde sekmenizi seçin; her ayarın yanındaki **ⓘ** butonuna tıklayarak işlevini öğrenin.
4. Oyun/uygulama içindeyken hotkey'inizle (varsayılan **F6**) başlatın/durdurun.
**Windows kısayolu:** `run.bat` çift tıklayın — `mvnw` ile derleyip başlatır.

### Manuel Derleme (macOS / Linux)
**Native installer (JRE gömülü) üretmek:**
```bash
mkdir -p lib
curl -sL https://repo1.maven.org/maven2/com/github/kwhat/jnativehook/2.2.2/jnativehook-2.2.2.jar -o lib/jnativehook.jar
curl -sL https://repo1.maven.org/maven2/com/formdev/flatlaf/3.4.1/flatlaf-3.4.1.jar -o lib/flatlaf.jar
javac -encoding UTF-8 -cp ".:lib/*" AutoClicker.java
java -Dfile.encoding=UTF-8 -cp ".:lib/*" AutoClicker
scripts/make-installer.sh # macOS/Linux -> dist/AutoClicker
scripts\make-installer.bat # Windows -> dist\AutoClicker\AutoClicker.exe
```

---
Expand All @@ -76,35 +94,49 @@ java -Dfile.encoding=UTF-8 -cp ".:lib/*" AutoClicker
| Tuş | Eylem |
|---|---|
| **F6** *(varsayılan)* | Aktif sekmenin makrosunu **Başlat / Durdur** |
| **ESC** | **Acil durdurma** (panik) — her zaman açık, değiştirilemez |
| **Orta Tık** | Konum seçme modunda hedefi kilitler |
| **Ayarlar → Hotkey** | İstediğiniz herhangi bir tuşa kısayol atama |
| Ayarlar → **Sekme Kısayolları** | Her makroya ayrı hotkey ata |

---

## 🛠️ Mimari & Teknolojiler

| Katman | Bileşen | Sürüm | Görev |
|---|---|---|---|
| UI | Java Swing + FormDev FlatLaf | 3.4.1 | Sekmeler, ikonlar, canlı tema |
| Donanım | `java.awt.Robot` + `MouseInfo` | JDK | DPI uyumlu koordinat, tıklama/tuş simülasyonu |
| Global Hook | JNativeHook | 2.2.2 | OS-seviyesi (kernel) tuş & fare dinleme |
| i18n | In-memory `String[][]` mapping | — | 6 dil hot-reload, restart yok |
| Persistence | `java.util.Properties` | JDK | `config.properties` — ayarlar, zincirler, renkler |
Tek dosyadan paket-katmanlı yapıya geçildi (v7):

```
com.ohualtex.autoclicker
├── AutoClicker Swing UI + orkestrasyon (MacroEngine/Strategy)
├── config/ ConfigStore (config + profil dosya I/O)
├── core/ Humanizer · ShutdownCommand · ConfigPaths · MousePath (saf, JUnit testli)
├── i18n/ Lang (6 dilli sözlük)
├── model/ ActionType · MacroAction
└── ui/ Icons (vektör ikonlar)
```

| Katman | Bileşen | Görev |
|---|---|---|
| Build | Maven (+ wrapper) · shade · jpackage | fat-jar, native installer |
| UI | Java Swing + FlatLaf 3.4.1 | sekmeler, ikonlar, canlı tema |
| Donanım | `java.awt.Robot` + `MouseInfo` | koordinat, tıklama/tuş simülasyonu |
| Global Hook | JNativeHook 2.2.2 | OS-seviyesi tuş & fare dinleme + kayıt |
| Veri | Gson · `java.util.Properties` | JSON makro · config/profil |
| CI/CD | GitHub Actions | her push'ta derle+test; tag'de çok-OS release |

---

## 📌 Notlar & Uyumluluk

- **Karakter kodlaması:** `run.bat`, `javaw` çağrısına `-Dfile.encoding=UTF-8` ekler. Türkçe karakterler `ç ğ ı ö ş ü` doğru render edilir.
- **Otomatik kapatma:** Limitör → *Shutdown* seçimi Windows'ta `shutdown -s -t 15`, macOS/Linux'ta `shutdown -h +1` çağırır. Bilinmeyen sistemde kullanıcıya uyarı verir, müdahale etmez.
- **JNativeHook + macOS:** macOS'ta *Erişilebilirlik* izni gerekir (`System Settings → Privacy & Security → Accessibility`).
- **Anti-cheat oyunlar:** Bu araç öğrenme ve verimlilik amacıyla yapılmıştır. Çok oyunculu / anti-cheat korumalı oyunlarda kullanmak hesap askısı veya ban riski taşır — sorumluluk kullanıcıya aittir.
- **Ayar konumu:** Ayarlar `%APPDATA%\AutoClicker\config.properties` (Windows) veya `~/.autoclicker/` (macOS/Linux) altında saklanır; installer ile kurulumda bile yazılabilir.
- **Otomatik kapatma:** Limitör → *Kapat* seçimi OS'a uygun komutu çalıştırır ve **iptal penceresi** sunar; AFK iseniz kapanır, başınızdaysanız iptal edebilirsiniz. Desteklenmeyen OS'ta uyarı verir.
- **macOS izni:** JNativeHook için *Erişilebilirlik* izni gerekir (`System Settings → Privacy & Security → Accessibility`).
- **Anti-cheat oyunlar:** Bu araç öğrenme ve verimlilik amacıyladır. Anti-cheat korumalı oyunlarda kullanmak ban riski taşır — sorumluluk kullanıcıya aittir.

---

<div align="center">

**AutoClicker Ultimate** — V6 sürüm hattı
**AutoClicker Ultimate** — V7 sürüm hattı
Made with ☕ and Java Swing

</div>
Loading
Loading