JaycobYT

5) Сокращение вывода оставшегося времени пермишена в «LuckPerms»

Apr 20th, 2023
2,993
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Скрипт изменения вывода оставшегося времени пермишена в «LuckPerms» (/papi ecloud download LuckPerms)
  2. var translations = {
  3. y: [" год "," лет "],
  4. mo: [" месяц "," месяцев "],
  5. w: [" н. "," н. "],
  6. d: [" дн. "," дн. "],
  7. h: [" ч. "," ч. "],
  8. m: [" мин. "," мин. "],
  9. s: [" сек. "," сек. "]
  10. };
  11.  
  12. var defaultConverterSettings = "d";
  13.  
  14. var displaySettings = {
  15. y: false,
  16. mo: false,
  17. w: false,
  18. d: true,
  19. h: true,
  20. m: false,
  21. s: false
  22. };
  23.  
  24. var time;
  25. var timeFormat = {
  26. y: 0,
  27. mo: 0,
  28. w: 0,
  29. d: 0,
  30. h: 0,
  31. m: 0,
  32. s: 0
  33. };
  34.  
  35. var keys = Object.keys(timeFormat);
  36.  
  37. function luckperms_time(){
  38.     if(args.length === 0 || args.length === 1) {
  39.         return "&cИспользуйте: '"+"%"+"javascript_time_inherited_expiry_time,<permission>"+"%"+"' или '"+"%"+"javascript_time_expiry_time,<permission>"+"%"+"'";
  40.     }
  41.    
  42.     time = PlaceholderAPI.static.setPlaceholders(BukkitPlayer, "%" + 'luckperms_' + args[0] + '_' + args[1] + "%");
  43.     splitter();
  44.    
  45.     if(defaultConverterSettings && arrayIncludes(keys, defaultConverterSettings)) {
  46.         converter(defaultConverterSettings);
  47.     }
  48.     return displayFormat();
  49. }
  50.  
  51. function splitter() {
  52.     var splitTime = time.split(" ");
  53.     for (var i = 0; i < splitTime.length; i++){
  54.         for (var j = 0; j < keys.length; j++) {
  55.             if(splitTime[i].indexOf(keys[j]) > -1) {
  56.                 timeFormat[keys[j]] = Number (splitTime[i].split(keys[j])[0]);
  57.                 break;
  58.             }
  59.         }
  60.     }
  61. }
  62.  
  63. function converter(convertTo) {
  64.     var convertHelp = [12,4.345,7,24,60,60];
  65.     var values = objectValues(timeFormat);
  66.     var index = keys.indexOf(convertTo);
  67.     var result = 0;
  68.  
  69.     for(var i = 0;i < index; i++) {
  70.         result = (result + values[i]) * convertHelp[i];
  71.         timeFormat[keys[i]] = 0;
  72.     }
  73.     timeFormat[convertTo] += Math.round(result);
  74. }
  75.  
  76. function translate(keySearch, index) {
  77.     var transArr = translations[keySearch];
  78.    
  79.     if(index > transArr.length) {
  80.         index = transArr.length;
  81.     }
  82.     return transArr[index-1];
  83.  
  84. }
  85. function displayFormat() {
  86.     var displayString = "";
  87.  
  88.     for (var i = 0; i<keys.length; i++) {
  89.         if(displaySettings[keys[i]] && timeFormat[keys[i]] != 0) {
  90.             displayString += timeFormat[keys[i]] + translate(keys[i], timeFormat[keys[i]]);
  91.         }
  92.     }
  93.     return displayString;
  94.  
  95. }
  96.  
  97. function arrayIncludes(arr, val){
  98.     if(arr.indexOf(val) !== -1) {
  99.         return true;
  100.     }
  101.     return false;
  102. }
  103.  
  104. function objectValues(obj) {
  105.     var vals = [];
  106.     for (var prop in obj) {
  107.         vals.push(obj[prop]);
  108.     }
  109.     return vals;
  110. }
  111.  
  112. luckperms_time();
Advertisement
Add Comment
Please, Sign In to add comment