Merge pull request #124 from Patricklumowa/Dev

field input stuff
This commit is contained in:
MiraclePatrickLumowa authored and GitHub committed 2025-09-02 14:21:38 +08:00
commit b71ed4fba6
4 files changed
+68 -20

No files matched your search

+24 -20
View File
@@ -487,6 +487,18 @@
pixels: 'Pixels',
charges: 'Charges',
batchSize: 'Batch Size',
cooldownSettings: 'Cooldown Settings',
waitCharges: 'Wait for Charges',
settings: 'Settings',
showStats: 'Show Statistics',
compactMode: 'Compact Mode',
minimize: 'Minimize',
tokenCapturedSuccess: 'Token captured successfully',
turnstileInstructions: 'Complete the verification',
hideTurnstileBtn: 'Hide',
notificationsNotSupported: 'Notifications not supported',
chargesReadyMessage: 'Charges are ready',
chargesReadyNotification: 'WPlace AutoBot',
initMessage: "Click 'Upload Image' to begin",
},
};
@@ -3471,13 +3483,12 @@
<div class="wplace-dual-control-compact">
<div class="wplace-slider-container-compact">
<input type="range" id="cooldownSlider" class="wplace-slider" min="1" max="1" value="${state.cooldownChargeThreshold}">
<span id="cooldownSliderValue" class="wplace-cooldown-value">${state.cooldownChargeThreshold}</span>
</div>
<div class="wplace-input-group-compact">
<button id="cooldownDecrease" class="wplace-input-btn-compact" type="button">-</button>
<input type="number" id="cooldownInput" class="wplace-number-input-compact" min="1" max="999" value="${state.cooldownChargeThreshold}">
<button id="cooldownIncrease" class="wplace-input-btn-compact" type="button">+</button>
<span class="wplace-input-label-compact">${Utils.t('charges')}</span>
<span id="cooldownValue" class="wplace-input-label-compact">${Utils.t('charges')}</span>
</div>
</div>
</div>
@@ -3780,14 +3791,13 @@
<div class="wplace-dual-control-compact">
<div class="wplace-speed-slider-container-compact">
<input type="range" id="speedSlider" min="${CONFIG.PAINTING_SPEED.MIN}" max="${CONFIG.PAINTING_SPEED.MAX}" value="${CONFIG.PAINTING_SPEED.DEFAULT}" class="wplace-speed-slider">
<span id="speedSliderValue" class="wplace-speed-value">${CONFIG.PAINTING_SPEED.DEFAULT}</span>
</div>
<div class="wplace-speed-input-container-compact">
<div class="wplace-input-group-compact">
<button id="speedDecrease" class="wplace-input-btn-compact" type="button">-</button>
<input type="number" id="speedInput" class="wplace-number-input-compact" min="${CONFIG.PAINTING_SPEED.MIN}" max="${CONFIG.PAINTING_SPEED.MAX}" value="${CONFIG.PAINTING_SPEED.DEFAULT}">
<button id="speedIncrease" class="wplace-input-btn-compact" type="button">+</button>
<span class="wplace-input-label-compact">pixels</span>
<span id="speedValue" class="wplace-input-label-compact">pixels</span>
</div>
</div>
</div>
@@ -4362,7 +4372,6 @@
const closeStatsBtn = statsContainer.querySelector('#closeStatsBtn');
const refreshChargesBtn = statsContainer.querySelector('#refreshChargesBtn');
const cooldownSlider = container.querySelector('#cooldownSlider');
const cooldownSliderValue = container.querySelector('#cooldownSliderValue');
const cooldownInput = container.querySelector('#cooldownInput');
const cooldownDecrease = container.querySelector('#cooldownDecrease');
const cooldownIncrease = container.querySelector('#cooldownIncrease');
@@ -4737,21 +4746,20 @@
// Speed controls - both slider and input
const speedSlider = settingsContainer.querySelector('#speedSlider');
const speedSliderValue = settingsContainer.querySelector('#speedSliderValue');
const speedInput = settingsContainer.querySelector('#speedInput');
const speedDecrease = settingsContainer.querySelector('#speedDecrease');
const speedIncrease = settingsContainer.querySelector('#speedIncrease');
const speedValue = settingsContainer.querySelector('#speedValue');
if (speedSlider && speedSliderValue && speedInput && speedValue && speedDecrease && speedIncrease) {
if (speedSlider && speedInput && speedValue && speedDecrease && speedIncrease) {
const updateSpeed = (newValue) => {
const speed = Math.max(CONFIG.PAINTING_SPEED.MIN, Math.min(CONFIG.PAINTING_SPEED.MAX, parseInt(newValue)));
state.paintingSpeed = speed;
// Update both controls without duplication
// Update both controls (value shows in input, label shows unit only)
speedSlider.value = speed;
speedInput.value = speed;
speedSliderValue.textContent = `${speed}`;
speedValue.textContent = `pixels`;
saveBotSettings();
};
@@ -6709,15 +6717,15 @@
setTimeout(checkSavedProgress, 1000);
if (cooldownSlider && cooldownSliderValue && cooldownInput && cooldownValue && cooldownDecrease && cooldownIncrease) {
if (cooldownSlider && cooldownInput && cooldownValue && cooldownDecrease && cooldownIncrease) {
const updateCooldown = (newValue) => {
const threshold = Math.max(1, Math.min(state.maxCharges || 999, parseInt(newValue)));
state.cooldownChargeThreshold = threshold;
// Update both controls
// Update both controls (value shows in input, label shows unit only)
cooldownSlider.value = threshold;
cooldownInput.value = threshold;
cooldownSliderValue.textContent = threshold;
cooldownValue.textContent = `${Utils.t('charges')}`;
saveBotSettings();
NotificationManager.resetEdgeTracking(); // prevent spurious notify after threshold change
@@ -7629,12 +7637,10 @@
const speedSlider = document.getElementById('speedSlider');
const speedInput = document.getElementById('speedInput');
const speedSliderValue = document.getElementById('speedSliderValue');
const speedValue = document.getElementById('speedValue');
if (speedSlider) speedSlider.value = state.paintingSpeed;
if (speedInput) speedInput.value = state.paintingSpeed;
if (speedSliderValue) speedSliderValue.textContent = `${state.paintingSpeed} (batch size)`;
const speedValue = document.getElementById('speedValue');
if (speedValue) speedValue.textContent = Utils.t('batchSize');
if (speedValue) speedValue.textContent = `pixels`;
const enableSpeedToggle = document.getElementById('enableSpeedToggle');
if (enableSpeedToggle) enableSpeedToggle.checked = CONFIG.PAINTING_SPEED_ENABLED;
@@ -7667,12 +7673,10 @@
const cooldownSlider = document.getElementById('cooldownSlider');
const cooldownInput = document.getElementById('cooldownInput');
const cooldownSliderValue = document.getElementById('cooldownSliderValue');
const cooldownValue = document.getElementById('cooldownValue');
if (cooldownSlider) cooldownSlider.value = state.cooldownChargeThreshold;
if (cooldownInput) cooldownInput.value = state.cooldownChargeThreshold;
if (cooldownSliderValue) cooldownSliderValue.textContent = state.cooldownChargeThreshold;
const cooldownValue = document.getElementById('cooldownValue');
if (cooldownValue) cooldownValue.textContent = Utils.t('charges');
if (cooldownValue) cooldownValue.textContent = `${Utils.t('charges')}`;
const overlayOpacitySlider = document.getElementById('overlayOpacitySlider');
if (overlayOpacitySlider) overlayOpacitySlider.value = state.overlayOpacity;
+13
View File
@@ -566,6 +566,19 @@
font-size: 13px;
}
/* Cooldown control styling for classic light theme */
.wplace-theme-classic-light .wplace-cooldown-control {
margin: 12px 0;
}
.wplace-theme-classic-light .wplace-cooldown-control label {
color: var(--wplace-highlight);
font-weight: 500;
font-size: 13px;
margin-bottom: 8px;
display: block;
}
/* Color swatches with light styling */
.wplace-theme-classic-light .wplace-color-swatch {
border: 1px solid rgb(0 0 0 / 20%) !important;
+15
View File
@@ -700,6 +700,21 @@
font-size: 13px;
}
/* Cooldown control styling for classic theme */
:root .wplace-cooldown-control,
.wplace-theme-classic .wplace-cooldown-control {
margin: 12px 0;
}
:root .wplace-cooldown-control label,
.wplace-theme-classic .wplace-cooldown-control label {
color: var(--wplace-highlight);
font-weight: 500;
font-size: 13px;
margin-bottom: 8px;
display: block;
}
/* Resize dialog styling for classic theme */
:root .resize-container,
.wplace-theme-classic .resize-container {
+16
View File
@@ -492,6 +492,22 @@
text-transform: uppercase;
}
/* Cooldown control styling for neon theme */
.wplace-theme-neon .wplace-cooldown-control {
margin: 8px 0;
}
.wplace-theme-neon .wplace-cooldown-control label {
color: var(--wplace-text) !important;
font-weight: 500;
font-size: 11px;
text-shadow: 0 0 8px var(--wplace-text) !important;
font-family: var(--wplace-font) !important;
text-transform: uppercase;
margin-bottom: 6px;
display: block;
}
/* Resize dialog styling for neon theme */
.wplace-theme-neon .resize-container {
background: #1a1a2e !important;