Change levelval and levelbar in Drawaria

Change levelval and levelbar on your drawaria profile!

  1. // ==UserScript==
  2. // @name Change levelval and levelbar in Drawaria
  3. // @namespace http://tampermonkey.net/
  4. // @version 2024-11-03
  5. // @description Change levelval and levelbar on your drawaria profile!
  6. // @match https://drawaria.online/profile/*
  7. // @icon https://www.google.com/s2/favicons?sz=64&domain=drawaria.online
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // Wait for the profile elements to load
  16. window.addEventListener('load', () => {
  17. // Get elements for level value and level bar
  18. const levelValElem = document.getElementById('levelval');
  19. const levelBarElem = document.getElementById('levelbar').querySelector('path');
  20.  
  21. // Create UI container for controls
  22. const controlContainer = document.createElement('div');
  23. controlContainer.style.position = 'fixed';
  24. controlContainer.style.bottom = '10px';
  25. controlContainer.style.left = '10px';
  26. controlContainer.style.background = '#ffffff';
  27. controlContainer.style.padding = '10px';
  28. controlContainer.style.border = '1px solid #ccc';
  29. controlContainer.style.borderRadius = '8px';
  30. controlContainer.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.1)';
  31. controlContainer.style.zIndex = '9999';
  32.  
  33. // Create slider for level value
  34. const levelSlider = document.createElement('input');
  35. levelSlider.type = 'range';
  36. levelSlider.min = 1;
  37. levelSlider.max = 100;
  38. levelSlider.value = parseInt(levelValElem.textContent, 10);
  39. levelSlider.style.width = '100%';
  40.  
  41. // Display current level value
  42. const levelDisplay = document.createElement('div');
  43. levelDisplay.textContent = `Level: ${levelSlider.value}`;
  44. levelDisplay.style.marginTop = '8px';
  45. levelDisplay.style.textAlign = 'center';
  46.  
  47. // Update level value and display
  48. levelSlider.addEventListener('input', () => {
  49. const level = levelSlider.value;
  50. levelValElem.textContent = level;
  51. levelDisplay.textContent = `Level: ${level}`;
  52. updateLevelBar(level);
  53. });
  54.  
  55. // Button to reset level to default
  56. const resetButton = document.createElement('button');
  57. resetButton.textContent = 'Reset';
  58. resetButton.style.marginTop = '10px';
  59. resetButton.style.width = '100%';
  60. resetButton.style.padding = '5px';
  61. resetButton.style.background = '#f44336';
  62. resetButton.style.color = '#fff';
  63. resetButton.style.border = 'none';
  64. resetButton.style.borderRadius = '4px';
  65. resetButton.style.cursor = 'pointer';
  66.  
  67. resetButton.addEventListener('click', () => {
  68. levelSlider.value = 0;
  69. levelValElem.textContent = '0';
  70. levelDisplay.textContent = 'Level: 0';
  71. updateLevelBar(0);
  72. });
  73.  
  74. // Function to update the level bar based on the level value
  75. function updateLevelBar(level) {
  76. const endAngle = (level / 101) * Math.PI * 2;
  77. const x = 0.5 + 0.475 * Math.cos(endAngle - Math.PI / 2);
  78. const y = 0.5 + 0.475 * Math.sin(endAngle - Math.PI / 2);
  79. levelBarElem.setAttribute('d', `M 0.5 0.025 A 0.475 0.475 0 ${level >= 50 ? 1 : 0} 1 ${x} ${y}`);
  80. }
  81.  
  82. // Append controls to the container
  83. controlContainer.appendChild(levelSlider);
  84. controlContainer.appendChild(levelDisplay);
  85. controlContainer.appendChild(resetButton);
  86.  
  87. // Add the container to the body
  88. document.body.appendChild(controlContainer);
  89. });
  90. })();