Greasy Fork 支持简体中文。

IC Delete with regex

Delete Items with RegEx

目前為 2024-12-24 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name IC Delete with regex
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.0
  5. // @license MIT
  6. // @description Delete Items with RegEx
  7. // @icon https://i.imgur.com/WlkWOkU.png
  8. // @author @activetutorial on discord
  9. // @match https://neal.fun/infinite-craft/
  10. // @run-at document-end
  11. // @grant none
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16.  
  17. window.regexdeletedata = {
  18. infinitecraft: null,
  19. deleteButton: null,
  20. trashcan: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIGZpbGw9IiMwMDAwMDAiIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgDQoJIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ5MC42NDYgNDkwLjY0NiINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8Zz4NCgkJPHBhdGggZD0iTTM5OS4xNzksNjcuMjg1bC03NC43OTQsMC4wMzNMMzI0LjM1NiwwTDE2Ni4yMTQsMC4wNjZsMC4wMjksNjcuMzE4bC03NC44MDIsMC4wMzNsMC4wMjUsNjIuOTE0aDMwNy43MzlMMzk5LjE3OSw2Ny4yODV6DQoJCQkgTTE5OC4yOCwzMi4xMWw5NC4wMy0wLjA0MWwwLjAxNywzNS4yNjJsLTk0LjAzLDAuMDQxTDE5OC4yOCwzMi4xMXoiLz4NCgkJPHBhdGggZD0iTTkxLjQ2NSw0OTAuNjQ2aDMwNy43MzlWMTQ2LjM1OUg5MS40NjVWNDkwLjY0NnogTTMxNy40NjEsMTkzLjM3MmgxNi4wMjh2MjUwLjI1OWgtMTYuMDI4VjE5My4zNzJMMzE3LjQ2MSwxOTMuMzcyeg0KCQkJIE0yMzcuMzIxLDE5My4zNzJoMTYuMDI4djI1MC4yNTloLTE2LjAyOFYxOTMuMzcyTDIzNy4zMjEsMTkzLjM3MnogTTE1Ny4xOCwxOTMuMzcyaDE2LjAyOHYyNTAuMjU5SDE1Ny4xOFYxOTMuMzcyeiIvPg0KCTwvZz4NCjwvZz4NCjwvc3ZnPg==",
  21. addUiOption: function () {
  22. try{
  23. this.deleteButton = document.createElement('div');
  24. this.deleteButton.classList.add('setting');
  25. this.deleteButton.textContent = 'Delete with RegEx';
  26. const img = document.createElement('img');
  27. img.src = this.trashcan;
  28. this.deleteButton.appendChild(img);
  29. this.deleteButton.onclick = function () {
  30. const regexInput = prompt("Make sure you have a backup and then enter a RegEx to delete:");
  31. if (regexInput) {
  32. try {
  33. const regexPattern = new RegExp(regexInput);
  34. for (let n = window.regexdeletedata.infinitecraft.elements.length - 1; n >= 0; n--) {
  35. const element = window.regexdeletedata.infinitecraft.elements[n];
  36. if (element.text && regexPattern.test(element.text)) {
  37. window.regexdeletedata.infinitecraft.elements.splice(n, 1);
  38. }
  39. }
  40. window.regexdeletedata.infinitecraft.saveItems();
  41. } catch (e) {
  42. alert('Invalid regex or an error occurred.');
  43. }
  44. }
  45. };
  46.  
  47. document.querySelector('.settings-content').appendChild(this.deleteButton);
  48. return true;
  49. } catch {
  50. return false;
  51. }
  52. },
  53. start: function () {
  54. if (document.querySelector('.settings-content')) { // Wait for IC Helper
  55. this.infinitecraft = window.$nuxt.$root.$children[1].$children[0].$children[0];
  56. this.addUiOption();
  57. } else {
  58. setTimeout(this.start.bind(this), 200);
  59. }
  60. }
  61. };
  62. window.regexdeletedata.start();
  63.  
  64. })();